Php Preg_替换模式变量
我有一个名字列表,我正在使用preg_replace将这些名字的某些部分加粗。我使用str_replace,但我需要对其进行限制 然而,我得到的错误是“分隔符不能是字母数字或反斜杠”。经过一些研究,我发现这是因为我的模式变量缺少斜杠 然而,我一直在努力,但我不能得到它的权利,我没有找到任何像我的例子。谢谢你的帮助Php Preg_替换模式变量,php,preg-replace,Php,Preg Replace,我有一个名字列表,我正在使用preg_replace将这些名字的某些部分加粗。我使用str_replace,但我需要对其进行限制 然而,我得到的错误是“分隔符不能是字母数字或反斜杠”。经过一些研究,我发现这是因为我的模式变量缺少斜杠 然而,我一直在努力,但我不能得到它的权利,我没有找到任何像我的例子。谢谢你的帮助 while($row = $result->fetch_array()) { $name = $row['name']; $array = explod
while($row = $result->fetch_array()) {
$name = $row['name'];
$array = explode(' ',trim($name));
$array_length = count($array);
for ($i=0; $i<$array_length; $i++ ) {
$letters = substr($array[$i], 0, $q_length);
if ($letters = $q) {
$bold_name = '<strong>'.$letters.'</strong>';
$final_name = preg_replace($letters, $bold_name, $array[$i], 1);
$array[$i] = $final_name; }
}
while($row=$result->fetch\u array()){
$name=$row['name'];
$array=explode(“”,trim($name));
$array_length=计数($array);
对于($i=0;$i您需要在正则表达式上使用分隔符。例如,使用~
:
$final_name = preg_replace('~'.$letters.'~', $bold_name, $array[$i], 1);
你可以在和上阅读更多
从文档中:
在使用PCRE函数时,要求图案用分隔符括起来。分隔符可以是任何非字母数字、非反斜杠、非空白字符
常用的分隔符有正斜杠(/
)、散列符号(#
)和波浪线(~
)。以下都是有效分隔模式的示例
/foo-bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9.-]%
您只需要在preg\u replace
的第一个参数中添加简单的分隔符
将前斜杠添加到$letters
(但也可以使用其他分隔符。)
正如您在问题中提到的,答案本身就是,分隔符不能是字母数字或反斜杠
哦。复制并编辑了错误的行。请参阅我的编辑。非常感谢,毕竟它非常简单!很高兴提供帮助!请记住选择答案!:)可能重复的
$final_name = preg_replace('/'.$letters.'/', $bold_name, $array[$i], 1);