我想为某些域名进行模式匹配(使用PHP)。例如,如果我获得了网站网址,那么我想确定该网址是否来自YouTube。下面的代码是我尝试过的,但它不起作用(if语句总是为false)。有什么建议?提前谢谢!
$website = trim( htmlentities( filter_var($_POST['website'], FILTER_SANITIZE_URL) ) );
if( preg_match("/youtube\.com/i", $website) )
{
// do stuff
}
答案 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
}