Używam zmodyfikowanego parsera emotek (dodałem trochę swoich itp.), oto fragment kodu:
function parsesmileys($message) {
$smiley = array(
"#\:\)#si" => "<img src='".IMAGES."smiley/usmiech.gif' alt='usmiech'>",
"#\;\)#si" => "<img src='".IMAGES."smiley/oczko.gif' alt='oczko'>",
"#\:\(#si" => "<img src='".IMAGES."smiley/smutny.gif' alt='smutny'>",
"#\;\(#si" => "<img src='".IMAGES."smiley/smutny.gif' alt='smutny'>",
(...)
"#\:tia:#si" => "<img src='".IMAGES."smiley/tia.gif' alt='tia'>",
"#\:trup:#si" => "<img src='".IMAGES."smiley/trup.gif' alt='trup'>",
"#\:arrow:#si" => "<img src='".IMAGES."smiley/arrow.gif' alt='arrow'>",
"#\:redman:#si" => "<img src='".IMAGES."smiley/redman.gif' alt='redman'>",
function displaysmileys($textarea) {
$smiles = "";
$smileys = array (
":)" => "usmiech.gif",
";)" => "oczko.gif",
":|" => "nijak.gif",
":(" => "smutny.gif",
(...)
":love:" => "love.gif",
":loff:" => "loff.gif",
":love:" => "love.gif",
":beer:" => "beer.gif",
Problem #1 polega na tym, że uśmieszki trochę za łatwo się "włączają". Np ciąg "o lub 'o (apostrof przed literą o) wyświetla tego samego smajla co :o (dwukropek przed literą o), chociaż oczywiście nie powinien.
Problem #2 to "konflikty" smajlów. Przykładowo napisanie (:love:) skutkuje wstawieniem zwykłego uśmieszku :), a nie smajla :love: (o, widzę że tutaj na forum działa to tak samo :D;)). Można to jakoś poprawić?
Za pomoc z góry dziękuję. :) |