Zastanawialiście się kiedyś jak stworzyć narzędzie grep, tylko że w php? 🙂 Poświęciłem chwilkę czasu i spłodziłem skrypt, dzięki któremu możemy wyszukiwać pliki(w odpowiednich katalogach), o określonym rozszerzeniu, zawierających odpowiednie wzorce(póki co nie oparte jeszcze na wyrażeniach regularnych ;)) Ruszyć powinien u każdego(pisane pod php4). Skrypt jest prosty i nie zawiera takiej funkcjonalności jak linuksowy grep, ale być może przyda się użytkownikom, którzy nie potrzebują zaawansowanych funkcji 😉
Użycie:
- Zapisujemy na dysku plik grep.phps(do ściągnięcia poniżej) jako grep.php
- Edytujemy pierwszą linijkę: #!/usr/bin/php-cgi -f wpisując ścieżkę do php w naszym systemie
- Nadajemy chmod 755 grep.php
- Uruchamiamy: ./grep.php [katalog_do_przeszukania] [wzorzec] [rozszerzenie_plikow]
np. ./grep.php /var/www/ left_block css
Źródło: grep.phps
Proponuje zamiast opendir i readdir zastosowac DirectoryIterator
emm: Można by zastosować DirecotryIterator ale dostępny jest on w PHP5 😉 A chodziło mi o jak największą dostępność 🙂
A kto rozsadny bawi sie w php4 ?
php5 ma wszystko co 4 i jeszcze wiecej, przede wszystkim wieksza wydajnosc i OOP.
Co stoi na przeszkodzie zrobienia aktualizacji ?
emm: zgadzam się z wszystkim co napisałeś 🙂 pomyśle nad przerobieniem tego pod PHP5 🙂
> A kto rozsadny bawi sie w php4 ?
A kto rozsądny bawi się w pisanie grepa w PHP?
dozzie: zauważ, że są wakacje – nie ma co robić 😉 ludzie mają różne zwariowane pomysły 🙂
Nie ma to jak wynajdywac kolo na nowo 🙂 Tym bardziej, ze szansa iz bedzie ono okragle jest znikoma.
Hosta z plikiem nie można zresolvowować — jest SERVFAIL.
Michał: hmm… u mnie wszystko działa?? 😛
Hmm… gdzie masz DNS-a? Bo faktycznie jak mu każę serwera TP użyć, to rozwiązuje, a z głównego zestawu (tego szybkiego) to mam SERVFAIL…
mam DNS przydzielany przez DHCP od TP. A jeśli chodzi Ci o deamona to leci przez nazwa.pl do dlk.pl 😉 SERVFAIL pojawia Ci się tylko przy files.gruszka.info? Dziwne 😛
Po restarcie lokalnego DNS-a zadziałało, pewnie inny serwer odpytał. Ale i tak strange… chyba że akurat chwilowy pad był, jak odpytywałem i się zcache’owało… w każdym razie przepraszam za offtopic.
Michale Górny – używaj OpenDNS 😉
Co do skryptu – bardzo, ale to bardzo przypomina mi ten, który widziałem gdzieś w manualu ;> a zamiast tych opendir itp mogłeś po prostu lecieć listę plików z glob(), a potem otwierać każdy i sprwadzać zawartość. nie wiem dlaczego sobie ludzie robotę utrudniają, wyjaśni ktoś ? 🙂
D4rky: nie spoglądałem do manuala 🙂 jak mi się będzie nudzić to poprawię ten skrypt 🙂