警告:preg_replace()[function.preg-replace]:未知修饰符' n'在

时间:2015-05-18 01:40:48

标签: php regex

我有一个偶尔发出错误的函数:

  

警告:preg_replace()[function.preg-replace]:未知修饰符' n'

通常它不会。我不明白这种模式的确如何以及什么时候没有。

我对正则表达式几乎一无所知,所以任何帮助都会非常感激。

这里的功能是:

if (!empty ($_SERVER["REQUEST_URI"]))
    {
        $scriptName = $_SERVER["REQUEST_URI"];
    }
    else
    {
        $scriptName = $_SERVER["PHP_SELF"];
    }
    $rootpath = preg_replace("/Install/index\.php(.*)$/", "", $scriptName);

谢谢。

1 个答案:

答案 0 :(得分:2)

您正在使用/作为正则表达式的分隔符(http://php.net/manual/en/regexp.reference.delimiters.php)。所以你需要逃避它或使用不同的分隔符。

$rootpath = preg_replace("/Install\/index\.php(.*)$/", "", $scriptName);

替代..

$rootpath = preg_replace("~Install/index\.php(.*)$~", "", $scriptName);