一旦页面被删除,我正在使用PHP删除/添加静态页面,我希望能够将其从.htaccess中删除,但是我已经尝试过了,但它抛出了一个错误:
警告:preg_replace() [function.preg-replace]:未知修饰符 '' ...
代码:
$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
表达式分隔符作为第二个参数传递给preg_quote
来转义表达式分隔符。
preg_replace('/RewriteRule ' . preg_quote('^' . $page_name . '/?$ page.php?mode=', '/') . '.*/i', '', $htaccess);
否则你的/不会被逃脱。如文档中所述,"特殊正则表达式字符为:.\ + * ?[ ^ ] $ ( ) { } = !<> |: -"
这样使用
preg_replace("~~msi","要替换的模式")。另外 - 良好的实践是通过行而不是 - 一次更改所有文本!!
所以
foreach ( file(.htaccess) as $line)
{
并在每行中替换,}
比全部输出,存储旧.htaccess的副本...
,阿尔森