Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Preg_替换模式变量_Php_Preg Replace - Fatal编程技术网

Php Preg_替换模式变量

Php Preg_替换模式变量,php,preg-replace,Php,Preg Replace,我有一个名字列表,我正在使用preg_replace将这些名字的某些部分加粗。我使用str_replace,但我需要对其进行限制 然而,我得到的错误是“分隔符不能是字母数字或反斜杠”。经过一些研究,我发现这是因为我的模式变量缺少斜杠 然而,我一直在努力,但我不能得到它的权利,我没有找到任何像我的例子。谢谢你的帮助 while($row = $result->fetch_array()) { $name = $row['name']; $array = explod

我有一个名字列表,我正在使用preg_replace将这些名字的某些部分加粗。我使用str_replace,但我需要对其进行限制

然而,我得到的错误是“分隔符不能是字母数字或反斜杠”。经过一些研究,我发现这是因为我的模式变量缺少斜杠

然而,我一直在努力,但我不能得到它的权利,我没有找到任何像我的例子。谢谢你的帮助

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);