0

ダウンロードしたパックの絵文字のこの大きなリストがあります。ありがたいことに、それらには絵文字コードが付属しているので、それらすべてを作成する必要はありませんでした(smileis:):-))。これは、ファイル形式のチャンクの例です。

smile.png           :)      :-)
smile-big.png       :D      :d :-D :-d
wink.png            ;)      ;-)
shock.png           :-O     :-o :O :o
tongue.png          :P      :p :-P :-p
glasses-cool.png    (H)     (h)
angry.png           :@      :-@
embarrassed.png     :$      :-$
confused.png        :S      :s :-S :-s
sad.png             :(      :-(
crying.png          :'(
neutral.png         :|      :-|
devil.png           (6)
angel.png           (A)     (a)
love.png            (L)     (l)
love-over.png       (U)     (u)
msn.png             (M)     (m)
cat.png             (@)
dog.png             (&)
moon.png            (S)
star.png            (*)
film.png            (~)

ただし、このリストを変更したり、再入力したりしなくても、文字列を調べて、記号の出現箇所を画像名にラップされた画像タグに置き換えることができますか。したがって、エモート定義のブロックを文字列として使用すると、次のように機能してconvert_emotes($text, $emote_definitions);回転する関数はありますか?

Hello world :) :D this is a heart emote: (L) and here's a dog (&)

Hello world <img src="smile.png" /> <img src="smile-big.png" /> this is a heart emote: <img src="love.png" /> and here's a dog <img src="dog.png" />

どんな助けでも大歓迎です!

4

1 に答える 1

1

良いコードではありませんが、おそらく機能します:

<?php
$patterns = array();
$replacements = array();

foreach (split("\n", file_get_contents("file")) as $line){
    $l = preg_split("/\s+/",$line);
    for($i = 1; $i < count($l); $i++){
        $patterns[] = $l[$i];
        $replacements[] = "<img src='{$l[0]}' />";
    }
}


echo str_replace($patterns, $replacements, "Hello world :) :D this is a heart emote: (L) and here's a dog (&)");
于 2012-08-12T16:31:39.573 に答える