如何使用PHP查找字符串是否包含特定URL?

时间:2012-04-27 04:42:39

标签: php preg-match

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

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

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

3 个答案:

答案 0 :(得分:4)

您可以使用PHP的parse_url功能。例如

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

这将为您提供主机名。然后,您可以将其用于支票

if(parse_url($POST['website'], PHP_URL_HOST) == 'youtube.com') // do something

答案 1 :(得分: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
)

答案 2 :(得分:-1)

 if(strpos("youtube.com", $website) )
 {

   // do stuff
 }