【发布时间】:2025-12-18 04:50:01
【问题描述】:
如何为给定字符串中的特定单词设置样式? 我有一个函数来设置给定字符串中特定单词的样式,但这在 utf-8 字符串中不起作用
header('Content-type: text/html; charset=utf-8');
function bold($string, $word)
{
return preg_replace('/\b'.$word.'\b/', '<strong>'.$word.'</strong>', $string);
}
echo bold('چمستان تا', 'تا');
我该怎么做?我需要根据输入的用户查询在搜索结果中加粗一些关键字/短语
任何帮助将不胜感激
【问题讨论】:
-
试试
'/\b'.$word.'\b/u' -
错误:警告:preg_replace():编译失败:偏移 2 处的 UTF-8 字符串无效
-
您确定您的文件是以
utf-8编码保存的吗? -
那就试试
'/(?<!\w)' . preg_quote($word,'/') . '(?!\w)/u' -
在使用 utf-8 保存后,我的页面没有使用 ANSI 保存,您的正则表达式有效,谢谢
标签: php utf-8 preg-replace