Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] regular expression
Forum PHP.pl > Forum > Przedszkole
szym011
Witam forumowiczów.

Natknąłem się na pewien problem związany z wyrażeniami regularnymi.

Istnieje może funkcja która zwraca tekst pasujący do wzorca? Jeśli tak to pomógłby mi ktoś pomóc w napisaniu wzorca?

Pobieram do zmiennej zawartość jakiegoś pliku html. I tam chcę aby funkcja wycięła cały tekst który znajdzie się pomiędzy
  1. {for:cast}tekst{/for:cast}
(łącznie z tymi znacznikami for) a następnie wywaliła te znaczniki i zwróciła sam tekst. Dodam, że między znacznikami może znaleźć się dowolny znak.
Za pomoc dziękuję.
Pozdrawiam.
wNogachSpisz
To nie przypomina HTML'a.
szym011
  1. {for:cast}
  2. <div id="cast-top">
  3. <a href="#">
  4. <div class="cast">
  5. <span class="cast-name">{cast.name}</span>
  6. </div>
  7. </a>
  8. </div>
  9. {/for:cast}


Teraz przypomina? Te znaczniki są wymyślone przeze mnie po to aby skrypt mógł szybko je sobie oprawić, powielić i zastąpić.
Tuminure
Nie potrafię pisać wyrażeń regularnych ale myślę, że takie coś powinno zadziałać:
  1. preg_match_all('/\\{for:cast\\}.*?\\{\\/for:cast\\}/is', $text, $matches);
  2. echo var_dump($matches);

ewentualnie z .*? w nawiasie:
  1. preg_match_all('/\\{for:cast\\}(.*?)\\{\\/for:cast\\}/is', $text, $matches);
  2. echo debug::vars($matches);
abort
Kod
$fulltekst = "{for:cast}tekst{/for:cast}";
$ilosc = preg_match ('|\{for:cast\}(.*?)\{/for:cast\}|ms', $fulltekst, $txt);
echo "<pre>\$fulltext = "; var_dump ($fulltekst); echo "</pre>";
szym011
Podaliście kod bliski temu którego chce, ale nie do końca.
Jeśli wpisze:
  1. $fulltekst = "<html>{for:cast}tekst{/for:cast}</html>";

i zastosuje funkcje:
  1. $fulltekst = preg_replace ("|\{for:cast\}(.*?)\{/for:cast\}|ms", '<?php ?>', $fulltekst);

To podmienia cały tekst w zmiennej zamiast tylko tego wymaganego.
abort
  1. $fulltekst = preg_replace ("|\{for:cast\}(.*?)\{/for:cast\}|ms", '<?php \\1 ?>', $fulltekst);

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.