Tak, ale wyszedłem z założenia, że przed użyciem w kodzie warto wiedzieć co dana funkcja zwraca. W sensie, że in_array zwraca boola, a array_search zwraca klucz.
axwell
31.01.2009, 21:37:42
i wszystko jasne
@edit Przy okazji, żeby nie zakładać nowego tematu, tym razem chciałbym sprawdzić czy znak "/" zawiera się w zmiennej $dane
Czemu korzystasz z ereg(); ? preg_match(); jest lepsze pod każdym względem.
axwell
31.01.2009, 22:15:33
a już znalazłem stronę a w niej powody, dlaczego warto używać preg_match(), a nie ereg()
Cytat
Obsługuje dużo więcej wzorców, w tym bardzo przydatne „niezachłanne” dopasowywanie: ala.*kota w ereg złapie cały ciąg: „ala ma kota i jaś ma kota” i nic na to nie poradzisz. W preg można złapać samo „ala ma kota” za pomocą /ala.*?kota/ (te slashe to taki poperlowy spadek, patrz niżej).
Jest dużo szybsze (to ma znaczenie jeśli robisz parser). Jest nawet specjalny przełącznik S włączający optymalizację podczas kompilacji wzorców.
Obsługuje UTF-8 i np. /\pL\pM*/u łapie litery wraz z ich modyfikatorami. To mogą być nawet kilkunastobajtowe kombinacje liter i modyfikatorów, które tworzą wizualnie jeden znak.
Obsługuje asercje i warunkowe wzorce. /ala ma (?!kota)/ pasuje do „ala ma psa”, „ala ma kuku na muniu”, ale nie „ala ma kota”.
Bezpiecznie działa z danymi binarnymi, podczas gdy ereg() może ucinać stringi.
Jest ciągle rozwijane i wspierane, natomiast ereg() uznano za niewypał i jest trzymany tylko z litości nad starymi skryptami.
Składnia jest mniejwięcej kompatybilna z JavaScript i oczywiście Perl.
Pax95
31.01.2009, 22:40:57
Ale pewnie sam wzorzec się zmienia, a ja jeszcze nie spotkałem strony opisującej, jak używać preg_match. Zarzucicie coś?
ayeo
31.01.2009, 22:42:09
Manual i Google z frazą (perl wyrażenia regularne)
erix
2.02.2009, 15:59:33
Cytat
a już znalazłem stronę a w niej powody
Najważniejszy, to taki, że w PHP6 ereg_* nie będzie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.