如何使用PHP查找字符串是否包含特定URL?
我想对某些域名进行模式匹配(使用PHP)。例如,如果给我一个网站URL,那么我想确定该URL是否来自YouTube。下面的代码是我尝试过的,但不起作用(if语句总是false)。有什么建议吗?提前谢谢如何使用PHP查找字符串是否包含特定URL?,php,preg-match,Php,Preg Match,我想对某些域名进行模式匹配(使用PHP)。例如,如果给我一个网站URL,那么我想确定该URL是否来自YouTube。下面的代码是我尝试过的,但不起作用(if语句总是false)。有什么建议吗?提前谢谢 $website = trim( htmlentities( filter_var($_POST['website'], FILTER_SANITIZE_URL) ) ); if( preg_match("/youtube\.com/i", $website) ) { // do stu
$website = trim( htmlentities( filter_var($_POST['website'], FILTER_SANITIZE_URL) ) );
if( preg_match("/youtube\.com/i", $website) )
{
// do stuff
}
你的代码在我看来很好
<?php
$website = 'http://youtube.com/video?w=123455';
if( preg_match("#youtube\.com#i", $website, $matches) )
{
print_r($matches);
}
你的代码在我看来很好
<?php
$website = 'http://youtube.com/video?w=123455';
if( preg_match("#youtube\.com#i", $website, $matches) )
{
print_r($matches);
}
您可以使用PHP的函数。例如
parse_url($POST['website'], PHP_URL_HOST);
这将为您提供主机名。然后,您可以将其用于您的支票
if(parse_url($POST['website'], PHP_URL_HOST) == 'youtube.com') // do something
您可以使用PHP的函数。例如
parse_url($POST['website'], PHP_URL_HOST);
这将为您提供主机名。然后,您可以将其用于您的支票
if(parse_url($POST['website'], PHP_URL_HOST) == 'youtube.com') // do something
这怎么不起作用呢?看看可能重复的链接:///那么,如果
$website
是“”,您预期的行为是什么?那会发生吗?也许像parse_url()
和检查“host”键这样更健壮一点的东西会更准确。我只是更新了代码,使之更具体。URL来自一个表单。也许这是我清理URL的方式?这怎么不起作用?看看可能重复的链接:///那么,如果$website
是“”,你期望的行为是什么?那会发生吗?也许像parse_url()
和检查“host”键这样更健壮一点的东西会更准确。我只是更新了代码,使之更具体。URL来自一个表单。也许这就是我清理URL的方式?