gpt4 book ai didi

PHP - 如何突出显示所有单词 (utf-8) 匹配

转载 作者:搜寻专家 更新时间:2023-10-31 21:11:35 25 4
gpt4 key购买 nike

我尝试突出显示所有匹配的单词

示例:输入是 đã 那么所有的单词都会被高亮为 đã đã Đã Đã

但是只有đã是高亮的。

enter image description here

这是我的完整代码

<?php
header( 'Content-Type: text/html; charset=UTF-8' );

function highlightWords($text, $words) {
$text = preg_replace("|($words)|Ui", "<span class=\"highlight_word\">$1</span>", $text);
return $text;
}
$string = 'đã đà Đà Đã';
$words = 'đã';
$string = highlightWords($string, $words);
?>

<html>
<head>
<title>PHPRO Highlight Search Words</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<style type="text/css">
.highlight_word{
background-color: yellow;
}
</style>
</head>
<body>
<?php echo $string; ?>
</body>
</html>

如何突出显示所有单词 (utf-8) 匹配(如示例)谢谢。

最佳答案

您只看到第一个突出显示的原因是因为您正在使用 U (PCRE_UNGREEDY) 修饰符,我认为这就是造成混淆的原因。我假设您打算使用 u (PCRE_UTF8) 修饰符,它将模式字符串视为 UTF-8。有关详细信息,请参阅各种“Pattern Modifiers”。

尝试在您的 preg_replace 函数中使用 u (PCRE_UTF8),如下所示,您应该会看到所有突出显示的词:

function highlightWords($text, $words) {
$text = preg_replace("|($words)|ui", "<span class=\"highlight_word\">$1</span>", $text);
return $text;
}

这是 phpfiddle

关于PHP - 如何突出显示所有单词 (utf-8) 匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18559030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com