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 回答