Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Preg_match wyodrebnianie textu z pola img src
Forum PHP.pl > Forum > Przedszkole
neo1986kk
Witam,

mam takie wyrażenie regularne

  1. #<\s*img [^\>]*src\s*=\s*(["\'])(.*(jpg).*)\1#im


i taki problem, że wybiera mi ono zdjęcia z src ale jeśli img ma atrybuty np alt="cos" to wybiera mi razem z tym altem, a chcę uzyskać tylko to co jest w src, czy jest taka możliwość, żeby przerobić to moje wyrażenie, aby wybierało mi to na czym mi zależy?

Pozdrawiam
croc
A co powiesz na takie?
Kod
#<\s*img\s+[^>]*src\s*=\s*["']?([^"'>]+\.jpg)#i

Zakładam, że szukasz src kończącym się na .jpg.
neo1986kk
no ale teraz znajduje gify też, a chcę tylko jpg
croc
Cytat(neo1986kk @ 4.11.2011, 22:15:07 ) *
no ale teraz znajduje gify też

Jesteś pewien?
neo1986kk
no jestem, a co gorsza nie znajduje jpg

tylko ze ja musialem to troche przerobic i u mnie wyglada tak

  1. $image_regex = '#<\s*img\s+[^>]*src\s*=\s*["\']?([^"\'>]+\.jpg)#i';

croc
To coś nie tak, bo ja też sprawdziłem (na kodzie wp.pl) i działa.
neo1986kk
JSON Z wp.pl


"1":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/bxserw2zam2.gif","2":"http:\/\/www.wp.pl\/i\/ivar\/P\/201110\/1319617722.gif","3":"http:\/\/www.wp.pl\/i\/ivar\/P\/201104\/275946.gif","4":"http:\/\/www.wp.pl\/i\/ivar\/T\/201110\/1319545152.gif","5":"http:\/\/www.wp.pl\/i\/ivar\/T\/201110\/1318321159.gif","6":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/dc.gif","7":"http:\/\/www.wp.pl\/i\/ivar\/T\/201106\/293779.gif","8":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/lgns.gif","9":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/lgpkt.gif","10":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/lgns.gif","11":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/ladowanie.gif","12":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/ladowanie.gif","13":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/ladowanie.gif","14":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/ladowanie.gif","15":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/ladowanie.gif","16":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/ladowanie.gif","17":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/ladowanie.gif","18":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/ladowanie.gif","19":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/ladowanie.gif","20":"http:\/\/www.wp.pl\/i\/ivar\/layout\/200812\/wptv_logo.gif","21":"http:\/\/www.wp.pl\/i\/ivar\/T\/201110\/1319198479.gif

ok dziala, zapomnialem w 3 regu zmienić sorry za zamieszanie
croc
  1. preg_match_all('#<\s*img\s+[^>]*src\s*=\s*["\']?([^"\'>]+\.jpg)#i', file_get_contents('http://wp.pl/'), $matches);
  2. print_r($matches);

Efekt:
Kod
Array
(
    [0] => Array
        (
            [0] => <img src="i/ivar/T/200903/8853.jpg
            [1] => <img src="i/ivar/O/200905/38904.jpg
            [2] => <img src="i/ivar/O/200905/38962.jpg
            [3] => <img src="i/ivar/W/201110/1319536913.jpg
            [4] => <img src="i/ivar/T/201109/340092.jpg
            [5] => <img id="gloI1" src="i/ivar/F/201111/1320417490.jpg
            [6] => <img id="gloI2" src="i/ivar/F/201111/1320408108.jpg
            [7] => <img id="gloI3" src="i/ivar/F/201111/1320332706.jpg
            [8] => <img id="gloI4" src="i/ivar/G/201111/1320333510.jpg
            [9] => <img id="gloI5" src="i/ivar/F/201111/1320314966.jpg
            [10] => <img src="i/ivar/F/201111/1320405463.jpg
            [11] => <img src="i/ivar/P/201111/1320402594.jpg
            [12] => <img src="i/ivar/M/201111/1320331503.jpg
            [13] => <img src="i/ivar/M/201110/1318489924.jpg
            [14] => <img src="i/ivar/M/201106/290926.jpg
            [15] => <img src="i/ivar/T/201111/1320325037.jpg
            [16] => <img src="i/ivar/S/201111/1320401046.jpg
            [17] => <img src="i/ivar/S/201102/242653.jpg
            [18] => <img src="i/ivar/K/201110/1319625226.jpg
            [19] => <img src="i/ivar/F/201111/1320423058.jpg
            [20] => <img src="i/ivar/F/201110/1318841996.jpg
            [21] => <img src="i/ivar/F/201111/1320331208.jpg
            [22] => <img src="i/ivar/F/201110/1318417735.jpg
            [23] => <img src="i/ivar/C/201110/1319792652.jpg
            [24] => <img src="i/ivar/F/201111/1320441839.jpg
            [25] => <img src="i/ivar/M/201007/163920.jpg
            [26] => <img src="i/ivar/F/201111/1320323011.jpg
            [27] => <img src="i/ivar/T/201110/1319020007.jpg
            [28] => <img src="i/ivar/T/201110/1319548442.jpg
            [29] => <img src="i/ivar/A/201105/283774.jpg
            [30] => <img src="i/ivar/A/201105/283768.jpg
            [31] => <img src="i/ivar/A/201105/285905.jpg
            [32] => <img src="i/ivar/T/201111/1320327142.jpg
            [33] => <img src="i/ivar/A/201108/334449.jpg
            [34] => <img src="i/ivar/A/201109/339906.jpg
            [35] => <img src="i/ivar/A/201109/341234.jpg
            [36] => <img src="i/ivar/A/201108/334642.jpg
        )

    [1] => Array
        (
            [0] => i/ivar/T/200903/8853.jpg
            [1] => i/ivar/O/200905/38904.jpg
            [2] => i/ivar/O/200905/38962.jpg
            [3] => i/ivar/W/201110/1319536913.jpg
            [4] => i/ivar/T/201109/340092.jpg
            [5] => i/ivar/F/201111/1320417490.jpg
            [6] => i/ivar/F/201111/1320408108.jpg
            [7] => i/ivar/F/201111/1320332706.jpg
            [8] => i/ivar/G/201111/1320333510.jpg
            [9] => i/ivar/F/201111/1320314966.jpg
            [10] => i/ivar/F/201111/1320405463.jpg
            [11] => i/ivar/P/201111/1320402594.jpg
            [12] => i/ivar/M/201111/1320331503.jpg
            [13] => i/ivar/M/201110/1318489924.jpg
            [14] => i/ivar/M/201106/290926.jpg
            [15] => i/ivar/T/201111/1320325037.jpg
            [16] => i/ivar/S/201111/1320401046.jpg
            [17] => i/ivar/S/201102/242653.jpg
            [18] => i/ivar/K/201110/1319625226.jpg
            [19] => i/ivar/F/201111/1320423058.jpg
            [20] => i/ivar/F/201110/1318841996.jpg
            [21] => i/ivar/F/201111/1320331208.jpg
            [22] => i/ivar/F/201110/1318417735.jpg
            [23] => i/ivar/C/201110/1319792652.jpg
            [24] => i/ivar/F/201111/1320441839.jpg
            [25] => i/ivar/M/201007/163920.jpg
            [26] => i/ivar/F/201111/1320323011.jpg
            [27] => i/ivar/T/201110/1319020007.jpg
            [28] => i/ivar/T/201110/1319548442.jpg
            [29] => i/ivar/A/201105/283774.jpg
            [30] => i/ivar/A/201105/283768.jpg
            [31] => i/ivar/A/201105/285905.jpg
            [32] => i/ivar/T/201111/1320327142.jpg
            [33] => i/ivar/A/201108/334449.jpg
            [34] => i/ivar/A/201109/339906.jpg
            [35] => i/ivar/A/201109/341234.jpg
            [36] => i/ivar/A/201108/334642.jpg
        )

)
neo1986kk
Edit: a spróbuj tym kodem ściągnąć obrazek stąd http://www.wiocha.pl/40143,A_pozniej_chwali_sie_kolegom
croc
No też działa...
neo1986kk
a u mnie się pokazują ikony przerwanych kartek w array
  1. preg_match_all('#<\s*img\s+[^>]*src\s*=\s*["\']?([^"\'>]+\.jpg)#i', file_get_contents('http://www.wiocha.pl/40143,A_pozniej_chwali_sie_kolegom'), $matches);
  2. print_r($matches);
croc
I prawidłowo. Pokazują się, bo preg_match_all zwraca w pierwszej kolejności pełne dopasowanie wzorców. A mój wzorzec nie domyka całego znacznika, bo po co ma to robić. Nie interesuje nas to co jest po src.
neo1986kk
juz wiem dlaczego, bo jak zmieniłem na print(mathes[1]) to pokazalo linki

masz absolutną rację
wNogachSpisz
Do takich rzeczy jest PHP:DOM:DomDocument
Nie żadne preg_match()
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.