クエリ文字列(パラメータは&で区切られています)を持つURLに対してPHP検証関数が必要です。現在、私はPHPを使用したクエリ文字列検証を使用するURL
$pattern = '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)[email protected])?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/';
echo preg_match($pattern, $url);
この機能をURLを検証するため、以下の機能が正しくなど
...
google.com
www.google.com
http://google.com
http://www.google.com
のような入力を検証してきました。しかし、これはURLを検証しません。パラメータ(クエリ文字列)が付属しています。たとえば。
http://google.com/index.html?prod=gmail&act=inbox
両方のタイプのURL入力を受け入れる機能が必要です。助けてください。前もって感謝します。
FTRとして試してみることができ、私は確認することが最も賢明なアプローチを考えるかもしれませんschemeは '$ parsed = parse_url($ str);となります。 – DaveRandom
コメントありがとうございました –
私はURIにクエリが存在するかどうかをチェックするためにParse_urlを使いました。 :) –