0

我想对某些域名进行模式匹配(使用 PHP)。例如,如果给我一个网站 URL,那么我想确定该 URL 是否来自 YouTube。下面的代码是我尝试过的,但它不起作用(if 语句总是错误的)。有什么建议么?提前谢谢!

$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 回答