【问题标题】:Unknown modifier in my code [duplicate]我的代码中的未知修饰符[重复]
【发布时间】:2012-10-22 18:27:34
【问题描述】:
<? php
    $Src = 'images/pages/clients/logos/clnt_aljareera_img.jpg';
    $pttn= '/&Src:'.$Src.'/';
    $string=preg_replace($pttn,'',$string,1);
?>

//输出错误:未知修饰符'p' in

【问题讨论】:

    标签: php modifier


    【解决方案1】:

    您的字符串包含一大堆/,当使用/ 作为正则表达式分隔符时,需要将其转义为\/。代替/ 作为正则表达式分隔符,使用不会出现在您的字符串中的东西,例如~。但是,您必须选择保证不会出现在$Src 中的分隔字符。即使使用|,您也可能比使用~ 更安全。

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

    发生的情况是,由/ 分隔的正则表达式在images/ 之后立即遇到p,因为它认为它已到达结束分隔符。下一个单词pages 被错误地视为一串正则表达式修饰符。

    PHP 看到正则表达式:

    /&src:images/pages
    

    【讨论】:

    • 光速。谢谢芽。
    【解决方案2】:

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

    【讨论】:

    • 这几乎看起来像问题(这是一个问题),但未知修饰符是 images/p 的结果,正则表达式认为它遇到了结束 / 分隔符,后跟 @987654323 @.
    • 你说得对,“仅”开头的 php-tag 会导致语法错误.. 它刚刚进入我的视线,我想他无论如何都需要修复它;-)
    • 真的,这会导致Parse error: syntax error, unexpected T_VARIABLE
    猜你喜欢
    • 2011-02-01
    • 2011-08-01
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    相关资源
    最近更新 更多