Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pomoc z preg_replace
Forum PHP.pl > Forum > Przedszkole
Elber
Witam,

mam na stronie kod html w postaci:

Kod
<pre class="bbcode_code" style="height:372px;">
TREŚĆ .......
</pre>


jest on w zmiennej ten kod i cała reszta jest w zmiennej $tresc

I chciałbym wstawić coś przed <pre class .... powiedzmy zawartość zmiennej $add aby uzyskać:

Kod
$add
<pre class="bbcode_code" style="height:372px;">
TREŚĆ .......
</pre>


Tylko nie wiem jak ułożyć preg_replace aby dołożyć zawartość zmiennej na początku..próbuję tak:

  1. $tresc = preg_replace('/<pre class="bbcode_code"style="height:372px;">([^"]*)</pre>/', $add.'<pre class="bbcode_code"style="height:372px;">\\1</pre>', $tresc);
Daimos
prawie prawie smile.gif tylko dokładasz drugi raz tag <pre>
zmień tylko nawiasy i będzie ok:
  1. $tresc = preg_replace('/(\<pre class\=\"bbcode_code\" style\=\"height\:372px;\"\>[^"]+\<\/pre\>)/', $add.'<pre class="bbcode_code"style="height:372px;">\\1</pre>', $tresc);

tak na szybko z palca, ale chyba powinno działać
sory za przesadzone \, ale profilaktycznie, dopiero wstałem i nie kontaktuje biggrin.gif
ah jeszcze edit:
możesz tutaj wykorzystać preg_replace_callback
wtedy będziesz mógł bardziej poszaleć
by_ikar
  1. <?php
  2.  
  3. $str = '<pre class="bbcode_code" style="height:372px;">
  4. TREŚĆ .......
  5. </pre>';
  6.  
  7. $add = 'ciag ktory zostanie dodany ';
  8.  
  9. $res = preg_replace('#(<pre class="bbcode_code"[^>]*>[^<]+</pre>)#', $add.'$1', $str);
  10.  


Z tym wyrażeniem, to @daimos trochę przekombinowałeś, zwłaszcza z escapowaniem.. htmlspecialchars, jest tylko po to żebyś widział co dokładnie jest w zmiennej $res.
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.