function emoticons($text) {
$icons = array(
':)' => '<img src="/images/blank.gif" alt="smile" class="icon_smile" />',
':-)' => '<img src="/images/blank.gif" alt="smile" class="icon_smile" />',
':D' => '<img src="/images/blank.gif" alt="smile" class="icon_laugh" />',
':d' => '<img src="/images/blank.gif" alt="laugh" class="icon_laugh" />',
';)' => '<img src="/images/blank.gif" alt="wink" class="icon_wink" />',
':P' => '<img src="/images/blank.gif" alt="tounge" class="icon_tounge" />',
':-P' => '<img src="/images/blank.gif" alt="tounge" class="icon_tounge" />',
':-p' => '<img src="/images/blank.gif" alt="tounge" class="icon_tounge" />',
':p' => '<img src="/images/blank.gif" alt="tounge" class="icon_tounge" />',
':(' => '<img src="/images/blank.gif" alt="sad face" class="icon_sad" />',
':o' => '<img src="/images/blank.gif" alt="shock" class="icon_shock" />',
':O' => '<img src="/images/blank.gif" alt="shock" class="icon_shock" />',
':0' => '<img src="/images/blank.gif" alt="shock" class="icon_shack" />',
':|' => '<img src="/images/blank.gif" alt="straight face" class="icon_straight" />',
':-|' => '<img src="/images/blank.gif" alt="straight face" class="icon_straight" />',
':/' => '<img src="/images/blank.gif" alt="straight face" class="icon_straight" />',
':-/' => '<img src="/images/blank.gif" alt="straight face" class="icon_straight" />'
);
return strtr($text, $icons);
}
Ama http://
ait :/
parçası yerini alır bir bağlantı girerseniz: önünde 4 alanlarda (koduyla
aynı yanı) her satırın) kodu kutusu oluşturmak için, ama nedense basit )
göz kırparak (yerini alır:
Bunun gibi tüm simgeleri değiştirmekten daha iyi bir çözüm var mı? Açıkçası iyi çalışmıyor. Google'da çok fazla arama yaptım ve daha iyi bir yol bulamadım. Yukarıdaki ilişkisel dizinin her bir ifadesinden önce bir boşluk koymayı denedim, ancak daha önce herhangi bir şey olmadan bir :) girdiğinizde işe yaramadı.
+1 kelime sınırları için - ama 'http: // www' söz konusu olduğunda, 'http' kelimesi ve '/' bir kelime sınırı olmaz, yani ': /' hala filtrelenirdi? – Tim
aslında bunu geri alıyorum - [preg_quote' için] +1 (http://php.net/preg_quote), bu harika! – Tim
Yani bu işlevi strtr() 'yerine kullanmak yerine koydum. ** Düzenleme: ** Hmm, nedense hiçbir simge görüntülere dönüştürülmez. Metin ifadelerinin kod kutularında görüntülere dönüşmemesi için bir yol olup olmadığını merak ediyorum. – Nathan