PHP将每个单词放在<;span>;没有标点符号


PHP Place each word in a paragraph in a <span> without punctuation

如何将段落中的每个单词放置在其单独的span标记中?目前我正在使用explode()并使用一个空格来完成此操作,但我得到了以下内容:

"<span>Hello,</span> <span>I</span> <span>am</span> <span>Alec.</span>"

我将使用字典查找每个单词,但"你好"找不到我要查找的内容。此外,我正在根据所选单词(通过onClick)设置跨度的样式,所以我不希望逗号成为跨度的一部分。

最终,我希望填充以下代码:

"<span>Hello</span>, <span>I</span> <span>am</span> <span>Alec</span>."

从理论上讲,在不使用explode()的情况下这样做会很好,因为我必须将所有这些字符添加回文本中,但不在<span>中。有实现这一点的功能吗?

谢谢!

编辑:我会用它来写不同语言的日常文章,所以需要"A-Za-z"之外的连字符单词或字母。

preg_replace()可以做到这一点:

$str = 'Hello, I am Alec.';
echo preg_replace('/('w+)/', '<span>${1}</span>', $str);

输出:

<span>Hello</span>, <span>I</span> <span>am</span> <span>Alec</span>.