2012-01-05 26 views
0

指定されたURLが少なくともサイト名と一致するかどうかを確認するにはどうすればよいですか?一致するURLを確認するPHPの正規表現

は私が持っている:

$url_to_match = 'http://sub.somesite.com/'; 

は私だけhttp://sub.somesite.comで始まる入力は、 "MATCHが見つかりました" と言いたいです。

ご協力いただければ幸いです。

答えて

2

使用PHPのparse_url()

$url = 'http://sub.somesite.com/'; 
if ('sub.somesite.com' === parse_url($url, PHP_URL_HOST)) { 
    // we have a match 
} 
+0

+1は、仕事のための適切なツールです。 OPがスキームも検証したいかどうかによって異なります。 – cmbuckley

+0

ありがとう、仕事をうまくいった。私は正規表現のアプローチの多くと混同されました:)しかし、これは簡単です。 – swan

0

私はあなたが何をしているのかは、このリクエストは設計上意味がないので、教えてください。

しかし、質問に答える。

if(strpos($url_to_match, 'http://sub.anothersite.com/bla') !== FALSE) print 'bad string'; 
+0

これはstrposの間違った使い方()(構文エラー)ですが、はい、に基づいあなたはstrpos()を使う必要があります。http://lt.php.net/strpos –

+0

@AurelijusValeiša、良いキャッチ、私は$ haystack'を忘れて信じられない。 XD – Xeoncross

+0

私は私の質問を明確にしました。私は反対を確認することは、私が意味するものではないことを恐れています。ありがとう – swan

1

使用parse_url

例:

function match_url($base,$input) 
{ 
    $base_host = parse_url($base,PHP_URL_HOST); 
    $input_host = parse_url($input,PHP_URL_HOST); 
    if($base_host === $input_host) { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
$base_url = 'http://sub.somesite.com'; 
$input_url = 'http://sub.somesite.com//bla/bla'; 
echo (match_url($base_url,$input_url)) ? "URL matched" : "URL mismatched"; 
+0

ありがとう、これも動作するはずです。 – swan

関連する問題