我的代码中的未知修饰符

时间:2012-10-22 18:27:34

标签: php modifier

<? php
    $Src = 'images/pages/clients/logos/clnt_aljareera_img.jpg';
    $pttn= '/&Src:'.$Src.'/';
    $string=preg_replace($pttn,'',$string,1);
?>

//输出错误:

中的未知修饰符'p'

2 个答案:

答案 0 :(得分:5)

使用/作为正则表达式分隔符时,您的字符串包含一大堆\/,需要以/进行转义。而不是/作为正则表达式分隔符,使用像~这样的字符串中不会出现的内容。 必须选择一个分隔字符,但保证出现在$Src中。使用|而不是~可能会更安全。

$Src = 'images/pages/clients/logos/clnt_aljareera_img.jpg';
// Delimit the regular expression with ~
$pttn= '~&Src:'.$Src.'~';
$string=preg_replace($pttn,'',$string,1);

/p之后立即遇到images/,因为它认为已达到结算分隔符。下一个单词pages被错误地视为一串正则表达式修饰符。

PHP看到正则表达式:

/&src:images/pages

答案 1 :(得分:5)

删除开始php-tag中的空格。