Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_replace zamiana wieloliniowych ciagow
Forum PHP.pl > Forum > Przedszkole
trevorr
Witam,

potrzebuje zamienic przez preg_replace wieloliniowy ciag znakow w zrodle strony html np. usunac komentarze z czegos takiego:
Cytat
<!--
dsfksjhfgfdgfd
fgdfdghfdhgfhsfd
ggfdhgfdhsdfg
-->


lub takiego (caly header-wrapper)

Cytat
<div id="header-wrapper">
<div id="header">
<div id="logo">
<h1><a href="#">naglowek</a></h1>
</div>
</div>
</div>


niestety
Kod
#<!--(.*)-->#
nie dziala, czegos brakuje ... ale nie wiem czego ..
fiszol
Jeśli wyrażanie ma pracować na wielu liniach, brakuje modyfikatora "m".
http://www.gajdaw.pl/php/wyrazenia-regular...torial/p19.html
trevorr
Wybacz ale chyba nie zrozumialem,
  1. #<!--(.*)-->#m

nie dziala, moglbys pokazac w jaki sposob mam uzyc tego modyfikatora jesli go zle uzywam ?
fiszol
A tak:
  1. <?php
  2. $string = '<!--
  3. dsfksjhfgfdgfd
  4. fgdfdghfdhgfhsfd
  5. ggfdhgfdhsdfg
  6. -->';
  7.  
  8. /* bez wzgledu na rozmiar znakow (i), (s) sprawia ze . (kropka) pasuje tez do znaku nowej linii czy spacji */
  9. $pattern = '/<!--.*?-->/is';
  10.  
  11. $res = preg_replace($pattern, $string, $match);
  12.  
  13. echo '<textarea rows="10" cols="50">';
  14. var_dump($res);
  15. echo '</textarea>';
  16. ?>
?
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.