2012-04-27 12 views
0

特定のドメイン名に対してパターンマッチングを行いたい(PHPを使用)。たとえば、ウェブサイトのURLが指定されている場合、そのURLがYouTubeのものかどうかを判断したいと考えています。以下のコードは私が試したものですが、動作しません(if文は常にfalseです)。助言がありますか?あらかじめありがとう!文字列に特定のURLが含まれているかどうかをPHPで調べるにはどうすればよいですか?

$website = trim(htmlentities(filter_var($_POST['website'], FILTER_SANITIZE_URL))); 

if(preg_match("/youtube\.com/i", $website)) 
{ 
    // do stuff 
} 
+1

どのように動作しないのですか? – sberry

+0

http://php.net/manual/en/function.preg-match.php –

+1

可能な重複:http://stackoverflow.com/questions/2129443/any-preg-match-to-あなたのビデオを見て、あなたのビデオを見て、あなたのビデオを見てください。 and-return-clean-video-url/http://stackoverflow.com/questions/1383073/php-validate-youtube-url/http://stackoverflow.com/questions/8027023/regex-php-auto-detect- youtube-image-and-regular-links – anonymous

答えて

1

あなたのコードは、私には正常に見える...

<?php 

$website = 'http://youtube.com/video?w=123455'; 

if(preg_match("#youtube\.com#i", $website, $matches)) 
{ 
     print_r($matches); 
} 

EDITは

まだそれが動作するはずのようになります。

<?php 

$_POST = array(); 
$_POST['website'] = 'http://youtube.com/video?w=123455'; 
$website = trim(htmlentities(filter_var($_POST['website'], FILTER_SANITIZE_URL))); 

if(preg_match("#youtube\.com#i", $website, $matches)) 
{ 
     print_r($matches); 
} 

OUTPUTを

Array 
(
    [0] => youtube.com 
) 
-1
if(strpos("youtube.com", $website)) 
{ 

    // do stuff 
} 
4

PHPのparse_url機能を使用できます。例えば。

parse_url($POST['website'], PHP_URL_HOST); 

これはあなたにホスト名を与えます。あなたのチェックのためにそれを使用することができます

if(parse_url($POST['website'], PHP_URL_HOST) == 'youtube.com') // do something 
関連する問題