smiley2img

raspi 15.12.01 03:11

Muuta ":)" hymy.giffiksi

 Tekstiversio  Arvo: 4 (6 ääntä)  Äänestä: +  -
<?php
function hymioconv($d) {
  $hymyurl = 'http://foo/kuvat/hymiot/';
  $hymiot = array (
    ":)"  => "smile",
    ":-)" => "smile",
    "=)"  => "smile",
    "=("  => "sad",
    ":-(" => "sad",
    ":("  => "sad",
    ":|"  => "neutral",
    ":-|" => "neutral",
    "=|"  => "neutral",
    ":P"  => "tongue",
    ":-P" => "tongue",
    "=P"  => "tongue",
    "=O"  => "o",
    ":O"  => "o",
    ":-O" => "o",
    ":D"  => "laugh",
    ":-D" => "laugh",
    "=D"  => "laugh",
    ";-D" => "laughwink",
    ";D"  => "laughwink",
    ";)"  => "wink",
    ";-)" => "wink",
    ";P"  => "tonguewink",
    ";-P" => "tonguewink",
    "8)"  => "sung",
    "8-)" => "sung",
    ":<"  => "mad",
    ":>"  => "funny"
  );

  foreach ($hymiot as $hymio => $teksti) {
    $d = str_replace(
         $hymio,
         "<img src=\"${hymyurl}${teksti}.gif\" alt=\"${hymio}\" " .
         'border="0" width="15" heigth="15" valign="middle">',
         $d
         );
  }
  return $d;
}

$foo = "hei, täähän toimii :) :D";
echo hymioconv($foo);
?>

pekkajarvinen@kolumbus.fi

editoitu: 12:32 29.10.04
empty 12:32 29.10.04 
Oiken kätsy skripti.

Jos haluaisi lisäillä sellaisia hymiöitä jotka tappaisivat html:ää, (esimerkissä :P tai vaikka jokin eksoottisempi <b eli laaseria-silmästään-ampuva-kyklooppitonttu) niin voisi käytellä seuraavanlaista versiota:
<?php
function hymioconv($d) {
  $hymyurl = 'http://foo/kuvat/hymiot/';
  $hymiot = array (
    ":)"  => "smile",
    ":D"  => "laugh",
    ":P"  => "tongue",
  );

  foreach ($hymiot as $hymio => $teksti) {
    $regex = sprintf('#(?!<.*?)(%s)(?![^<>]*?>)#si', preg_quote($hymio));
    $d = preg_replace($regex, '<img src="${hymyurl}${teksti}.gif" alt="${hymio}" '.
    'border="0" width="15" heigth="15" valign="middle">', $d);
  }
  return $d;
}

$foo = 'hei, täähän toimii :) :D<span style="color:Purple">Jee!!</span>';
echo hymioconv($foo);
?>

(Kohtuu turha, mutta ei voinut vastustaa :P Vanha koodihan rikkoisi mun härskin huonosti muotoillun CSSäni :))