3

一旦页面被删除,我正在使用 PHP 删除/添加静态页面,我希望能够从 .htaccess 中删除它,但是我已经尝试过,但它会引发错误:

警告:preg_replace() [function.preg-replace]: Unknown modifier '' in ...

编码:

$page_name = $row['page_name']; // Example:  help
preg_replace('/RewriteRule ' . preg_quote('^' . $page_name . '/?$ page.php?mode=') . '.*/i', '', $htaccess);

这是应该完全删除的示例:

RewriteRule ^help/?$ page.php?mode=help
4

2 回答 2

2

preg_quote您必须通过将表达式分隔符作为第二个参数传递给它来转义表达式分隔符。

preg_replace('/RewriteRule ' . preg_quote('^' . $page_name . '/?$ page.php?mode=', '/') . '.*/i', '', $htaccess);

否则你的 / 不会被逃脱。如文档中所述,“特殊的正则表达式字符是:. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -”

于 2011-05-07T23:19:25.100 回答
0

像这样使用

preg_replace ( "~~msi", "要替换的模式")。另外 - 好的做法是逐行分析 - 一次更改所有文本!

所以

foreach (file(.htaccess) as $line)
{

并在每一行替换,}

比全部输出,存储旧 .htaccess 的副本...

,阿森

于 2011-05-07T22:48:52.070 回答