Autor Zpráva
Public
Profil
Ako upraviť regulár, aby označilo všetky emotikony (+ správne vyformátovanie) ?
<?
$text = ":D :) :D :D";
foreach(array(":)", ":-)",":D") as $smailik) {
$text = Preg_Replace('#(^|\W)'.preg_quote($smailik, '#').'($|\W)#',  " <div class=\"Smyle\"><div class=\"text\">".$smailik."</div></div>\n", $text);
}

echo $text;
?>
Výstup je:
<div class="Smyle"><div class="text">:D</div></div>
<div class="Smyle"><div class="text">:)</div></div <div class="Smyle"><div class="text">:D</div></div>
:D
Majkl578
Profil
Použij str_replace, regulární výrazy zde nejsou potřeba.
Public
Profil
Čo ak bude text vyzerať takto ?
http://adresa.com/any?q=:) atď...

preto nechcem použiť str_replace...
etexweb
Profil
<?php
Preg_Replace("#(?!<\w)".Preg_Quote($smailik, "#")."(?!\w)#",  " <div class=\"Smyle\"><div class=\"text\">".$smailik."</div></div>\n", $text);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0