1

对于普通话学习工具,我想为单词中的每个中文“字符”创建链接。例如,我有中文单词“自行车”(自行车)。然后我想让这三个字符中的每一个都“可点击”。

$word = '自行车';

输出应该是:

$output = "<a href='?char=自'>自&lt;/a> 
<a href='?char=行'>行&lt;/a> 
<a href='?char=车'>车&lt;/a>";

有谁知道如何做到这一点?

4

3 回答 3

2

使用此正则表达式,您可以拆分字符。

preg_split('//u', "自行车", null, PREG_SPLIT_NO_EMPTY);

结果是三个字符的数组。

于 2019-11-06T06:52:58.720 回答
1

您可以使用preg_replace正则表达式替换中文字符,/(\p{Han})/u然后将其替换为您需要的内容。

preg_replace("/(\p{Han})/u","<a href='?char=$1'>$1</a>",'ss自行车ss');

输出:

ss<a href='?char=自'>自&lt;/a><a href='?char=行'>行&lt;/a><a href='?char=车'>车&lt;/a>ss

参考 php - 正则表达式检查字符串是否有中文字符

于 2019-11-06T07:07:09.960 回答
0

您可以在 for 循环中提取字符并生成锚标记。

<a href='<link?char=<extracted char>'><extracted char></a>
于 2019-11-06T06:55:59.350 回答