我有一个偶尔发出错误的函数:
警告: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);
谢谢。
答案 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);