Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenie regularne
Forum PHP.pl > Forum > PHP
duvik
Witam.
Sprawa ma się tak iż mam zmienną w której jest zawarta treść która ma zostać przerobiona funkcja preg_match_all.
Chciałbym wyciągnąć to co jest pomiędzy polami <embed właściwości_pola></embed>ta treść do wyciągnięcia<kolejny embed>

  1. $wzor_ = "#<embed(.*)></embed>(\s*)(.*)(\s*)#iU";
  2. preg_match_all($wzor_, $tresc, $wynik_);
  3.  
  4. for ($x = 0; $x < count($wynik_[2]); $x++) {
  5. echo $wynik_[2][$x]."<br />";
  6. }
  7.  
  8. $tresc = '<embed width="304" height="230" menu="true" loop="true" play="true" src="/zdjecia/fotki/flash/anima.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>ewfewf
  9. <embed width="304" height="230" menu="true" loop="true" play="true" src="/zdjecia/fotki/flash/animar.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>ewf
  10. <embed width="999" height="230" menu="true" loop="true" play="true" src="/zdjecia/fotki/flash/anierma.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-sho"></embed>';
nospor
nie analizuje twojego wyrazenia. Rzuca sie natomiast bardzo ciekawa rzecz:
najpierw wyrażeniem przelatujesz po $tresc, a dopiero potem tę $tresc ustawiasz..... winksmiley.jpg
duvik
To jak jest tutaj ustawiona treść czy na dole czy na górze nie ma znaczenie, ponieważ to jest część większej funkcji a ja wkleiłem tutaj to odwrotnie smile.gif Nie wiem po prostu co mam źle, niby co w tablicy jest ponieważ pętla się obraca i wypisuje tylko <br />
nospor
A nie mozesz zrobic:
print_r($wynik_);
i sprawdzic co tam tak naprawdę jest?
duvik
Cóż, zwraca pustą tablicę Array ( [0] => [1] => [2] => ), nie wiem dlaczego jeżeli pomiędzy tym jest tekst...
athei
Kod
#</embed>(.*)[\n\r\t]?<embed#iUs
duvik
Dziękuje za rozwiązanie, chwilę wcześniej wpadłem na również działające, tylko zajmujące więcej pamięci, ponieważ tablica ma więcej elementów.

Btw, może mi ktoś wytłumaczyć co oznaczają literki za "#" np iU questionmark.gif?

  1. #</embed>(\s*)(.*)(\s*)<embed(.*)>#iU
wywrot4
Pattern Modifiers
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.