Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: preg_replace
Forum PHP.pl > Forum > PHP
pogdan
Jak napisać wyrażęnie w pierwszym parametrze funckji preg_replace, żeby do każdego linku dopisało mi class="ala ma kota"?
Poniższy kod działa tylko do pierwszego wystąpienia szukanego wzorca. Działa tak jakbym chciał jak się połamie linię (string $s ).


$s = 'kota <a href="http://www.cos.ala.gif" title="aol" >ola</a> ala ma kota <a href="http://www.cos.pl/ola 2/ala.ala.jpg" title="aol" >ola</a> ala ma ';
echo preg_replace('/ (href="(.+)\.(jpg|gif|png|jpeg)")* /si', ' class="ala ma kota" ${1} ', $s);

poz
Wicepsik
Do takiego przykładu wystarczy str_replace
  1. echo str_replace('<a', '<a class="ala ma kota"', $s);
pogdan
Tak źle napisałem. Chcę tylko dla obrazka. tzn jeśli wartosc atrybutu href kończy się .gif lub .jpg lub .png lub .jpeg

( i jest wszystko fajnie jak połamię linię/stringa s natomiast jak nie ma enterów to tylko dla pierwszego linka to robi )

coś takiego działa idealnie ale ten str_replece jest nie ok na pewno da się to jednym preg_zrobić.

$s = 'adfadf <a href="http://www.cos.ala.html" >tstrona</a> kota <a href="http://www.cos.ala.gif" title="aol" >ola</a> ala ma kota <a href="http://www.cos.pl/ola 2/ala.ala.jpg" title="aol" >ola</a> ala ma ';
$s= str_replace("</a>","</a>\n", $s );
echo preg_replace('/ (href=".+\.(jpg|gif|png|jpeg)") /i', ' class="ala ma kota" ${1} ', $s,20);
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.