Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] preg_match_all
Kazaan
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zimi
post
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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 02:03