![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 43 Pomógł: 0 Dołączył: 17.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich forumowiczow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Mam problem z preg_match_all - mianowicie chcialem napisac uniwersalny skrypt pobierajacy url do grafiki z galerii ktore kieruja tylko do duzych obrazkow, w skrocie fotki z galerii z pominieciem reklam itp mam taki kod: Kod $zmienna = file_get_contents("http://www.adresstron.com/galeria/"); preg_match_all("((<((a|A).(href|HREF|Href).[=(\"|')])([a-zA-Z0-9/\._-]*.jpg|JPG|png|PNG|jpeg|JPEG|gif|GIF)((\"|')><(img src|IMG SRC|img border=1 src)=(\"|'))([a-zA-Z0-9/\._-]*.(jpg|JPG|png|PNG|jpeg|JPEG|gif|GIF))(\"|')))",$zmienna, $matches); print_r($matches); Niestety raz wyswietla poprawnie wartosci raz nie, gdzie tkwi problem?? jesli ktos zna rozwiazanie to z gory dziekuje za pomoc! Pozdrawiam Kazaan |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 9 Dołączył: 3.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
znacznie lepiej, ale ujawnił się nowy problem jeśli mnie pamięć nie myli:
jeżeli jakiś znak wziąłeś jako ogranicznik wyrażenia regularnego to w samym wyrażeniu regularnym musisz go cytować zatem w Twoim wypadku w regularce zamiast pisać / musisz pisać \/ albo \\/ (bo przed php chyba musimy cytować nasz znak cytowania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) 1. poza tym: \s wydaje mi się zbędne jako że zaraz masz (.*)? więc te białe znaki i tak zostaną dopasowane 2. być może (nie wiem z jakiego kodu chcesz to wyciagać więc trochę strzelam) przyda się modyfikator 's' który do .* może dopasować też znak nowej lini etc. wiecej w manualu 3. nie jest najlepszym pomysłem stosowanie ".*" jako że wyrażenia regularne są zachłanne proponuję zastosować np. [^>]+ zamiast \s(.*)? 4. wyrażenie regularne nie bierzę pod uwagę że coś może znajdować się po href lub src narazie to tyle Ten post edytował zimi 17.07.2008, 16:11:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 02:03 |