Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP查找字符串是否包含特定URL?_Php_Preg Match - Fatal编程技术网

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

如何使用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

我想对某些域名进行模式匹配(使用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
}

你的代码在我看来很好

<?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的方式?