pogdan
23.06.2010, 15:32:19
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
23.06.2010, 15:44:21
Do takiego przykładu wystarczy
str_replace
pogdan
23.06.2010, 17:58:52
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);