3

ページが削除されたら、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
4

2 に答える 2

2

preg_quote式の区切り記号を2 番目の引数として渡してエスケープする必要があります。

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 に答える