用图像替换表情符号,同时将其保留为表情符号

Riy*_*uri 0 javascript php emoji

我想用自定义图像替换我网站上的表情符号。这本身在 PHP 中不是问题:

$string = "This is a laughing emoji 😂";
echo str_replace($string, "😂", ":'D"); //or replace with an image
Run Code Online (Sandbox Code Playgroud)

但是,如果有人复制文本,我该如何管理,他们将能够复制带有表情符号的文本而不是替换的图像?就像保留字符😂 但只改变结果一样,这样它们对于每个用户来说看起来都是一样的。这有可能吗?

Wan*_*uta 5

一种方法是用图像标签替换表情符号<img>,但将alt图像的属性设置为原始表情符号。然后,如果将结果复制到只接受文本的地方,则将使用替代文本。

“运行”此代码片段以查看示例:

Hello <img alt="&#128512;" src="data:image/png;base64,R0lGODlhDAAMAKIFAF5LAP/zxAAAANyuAP/gaP///wAAAAAAACH5BAEAAAUALAAAAAAMAAwAAAMlWLPcGjDKFYi9lxKBOaGcF35DhWHamZUW0K4mAbiwWtuf0uxFAgA7"> world!
<br/>
<textarea cols="25" rows="3">Paste here</textarea>
Run Code Online (Sandbox Code Playgroud)

两个单词之间的表情符号看起来就像 Gmail 表情符号,直到您将整行文本复制到某处。

当然,您可以使用普通的 URL 来代替data:URL。