0

特定のドメイン名のパターンマッチングを実行したい(PHPを使用)。たとえば、ウェブサイトのURLが与えられた場合、そのURLがYouTubeからのものであるかどうかを確認したいと思います。以下のコードは私が試したものですが、機能しません(ifステートメントは常にfalseです)。助言がありますか?よろしくお願いします!

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

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

3 に答える 3

4

PHPのparse_url関数を使用できます。例えば。

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

これにより、ホスト名がわかります。その後、小切手に使用できます

if(parse_url($POST['website'], PHP_URL_HOST) == 'youtube.com') // do something
于 2012-04-27T05:53:36.317 に答える
1

あなたのコードは私にはうまく見えます...

<?php

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

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

編集

それでも動作するように見えます:

<?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);
}

出力

Array
(
    [0] => youtube.com
)
于 2012-04-27T04:45:19.420 に答える
-1
 if(strpos("youtube.com", $website) )
 {

   // do stuff
 }
于 2012-04-27T04:57:57.387 に答える