1

以下の1行のコードを理解しようとしています。

str_replace('../', '', $route);   

基本的にそれは'../'何も置き換えないと言います$route

$route = 'information/information&information_id=4';

URLから'index.php?route=information/information&information_id=4'

ただし、$route変数には../はありません。それはある種の正規表現ですか?はいの場合、それは正確に何をしますか。みんなありがとう。

4

2 に答える 2

4

"../"あなたはそれが空の文字列に置き換わると考えるのは正しいです。正規表現ではありません。あなたの例ではそれは発生していませんが、発生する可能性があります

ドキュメントルートからディレクトリ構造に戻るのを防ぐために、ある種のセキュリティに使用される場合があります。

于 2011-01-19T19:15:52.747 に答える
2

文字列にno../が含まれている場合、これは何も置き換えません。これは正規表現ではありません(これを参照preg_replace()してください。無効なパス(で始まる)を渡そうとする人に対する予防策です。これ../は、Webサーバーのドキュメントルート外のファイルにアクセスしようとする試み(つまり、ハッキングの試み)である可能性があります。

于 2011-01-19T19:16:26.413 に答える