Einen besseren Weg, Sie zu ersetzen emoticons in PHP?

Recht, jetzt bin ich mit dieser Funktion für emoticons:

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);
    }

Aber wenn Sie geben Sie einen link der :/ Teil http:// wird abgelöst:

Einen besseren Weg, Sie zu ersetzen emoticons in PHP?

Gleiche mit code (4 Leerzeichen vor der Zeile zu erstellen, die code-box), aber aus irgendeinem Grund eine einfache ) wird ersetzt (mit einem Augenzwinkern):

Einen besseren Weg, Sie zu ersetzen emoticons in PHP?

Gibt es eine bessere Lösung als das ersetzen alle Symbole wie diese? Es offensichtlich nicht funktioniert gut. Ich habe in Google gesucht und viel und habe nicht gefunden, einen besseren Weg. Ich habe auch versucht, indem Sie ein Leerzeichen vor jedem emoticon-in dem assoziativen array oben, aber das funktioniert nicht, wenn Sie geben Sie einfach ein 🙂 ohne alles, bevor es.

InformationsquelleAutor Nathan | 2012-03-11

Schreibe einen Kommentar