ホームページ  >  記事  >  バックエンド開発  >  PHP ereg() 関数と正規表現のマッチングについて説明します_PHP チュートリアル

PHP ereg() 関数と正規表現のマッチングについて説明します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:30:52913ブラウズ

ただし、 eregi() は、PHP ereg() 関数の大文字と小文字を無視するバージョンです。どちらも preg_match と同様の関数を持っていますが、この関数は一致が成功したかどうかを示すブール値を返します。 POSIX 拡張ライブラリ関数の最初のパラメータは正規表現文字列を受け入れる、つまり区切り文字は必要ないことに注意してください。たとえば、リスト 6.2 はファイル名のセキュリティをチェックする方法です。

コード 6.2 ファイル名のセキュリティチェック

<ol class="dp-xml"><li class="alt"><span><span class="tag"><</span><span> ?php  </span></span></li><li><span>$</span><span class="attribute">username</span><span> = $_SERVER['REMOTE_USER'];  </span></li><li class="alt"><span>$</span><span class="attribute">filename</span><span> = $_GET['file'];  </span></li><li><span>//对文件名进行过滤,以保证系统安全  </span></li><li class="alt"><span>if (!ereg('^[^./][^/]*$', $userfile))  </span></li><li><span>{  </span></li><li class="alt"><span>die('这不是一个非法的文件名!');  </span></li><li><span>}  </span></li><li class="alt"><span>//对用户名进行过滤  </span></li><li><span>if (!ereg('^[^./][^/]*$', $username))  </span></li><li class="alt"><span>{  </span></li><li><span>die('这不是一个无效的用户名');  </span></li><li class="alt"><span>}  </span></li><li><span>//通过安全过滤,拼合文件路径  </span></li><li class="alt"><span>$</span><span class="attribute">thefile</span><span> = </span><span class="attribute-value">"/home/$username/$filename"</span><span>;  </span></li><li><span class="tag">?></span><span> </span></span></li></ol>

Perl 互換の正規表現マッチング関数 perg_match() を使用すると、通常、PHP の ereg() 関数または eregi() を使用するより高速になります。文字列に特定の部分文字列が含まれているかどうかだけを確認したい場合は、strstr() 関数または strpos() 関数を使用することをお勧めします。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446253.html技術記事ただし、 eregi() は、PHP ereg() 関数の大文字と小文字を区別しないバージョンです。どちらも preg_match と同様の関数を持っていますが、この関数は一致が成功したかどうかを示すブール値を返します。説明する必要があります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。