PHP正则表达式来检查匹配的给定URL

PHP正则表达式来检查匹配的给定URL,php,Php,如何检查给定的URL是否至少与站点名匹配 我有: $url_to_match = 'http://sub.somesite.com/'; 我想对以http://sub.somesite.com仅限 非常感谢您的帮助。我想您需要告诉我们您正在做什么,因为这个请求没有设计意义 不过,我想回答这个问题 if(strpos($url_to_match, 'http://sub.anothersite.com/bla') !== FALSE) print 'bad string'; 我认为你需要告诉我

如何检查给定的URL是否至少与站点名匹配

我有:

$url_to_match = 'http://sub.somesite.com/';
我想对以
http://sub.somesite.com
仅限


非常感谢您的帮助。

我想您需要告诉我们您正在做什么,因为这个请求没有设计意义

不过,我想回答这个问题

if(strpos($url_to_match, 'http://sub.anothersite.com/bla') !== FALSE) print 'bad string';

我认为你需要告诉我们你在做什么,因为这个要求没有设计意义

不过,我想回答这个问题

if(strpos($url_to_match, 'http://sub.anothersite.com/bla') !== FALSE) print 'bad string';
使用PHP的:

使用PHP的:

使用

例如:

function match_url($base,$input)
{
    $base_host = parse_url($base,PHP_URL_HOST);
    $input_host = parse_url($input,PHP_URL_HOST);
    if( $base_host === $input_host ) {
        return true;
    }
    else
    {
        return false;
    }   
}
$base_url = 'http://sub.somesite.com';
$input_url = 'http://sub.somesite.com//bla/bla';
echo (match_url($base_url,$input_url)) ? "URL matched" : "URL mismatched";
使用

例如:

function match_url($base,$input)
{
    $base_host = parse_url($base,PHP_URL_HOST);
    $input_host = parse_url($input,PHP_URL_HOST);
    if( $base_host === $input_host ) {
        return true;
    }
    else
    {
        return false;
    }   
}
$base_url = 'http://sub.somesite.com';
$input_url = 'http://sub.somesite.com//bla/bla';
echo (match_url($base_url,$input_url)) ? "URL matched" : "URL mismatched";

这是strpos()的错误用法(语法错误),但是,是的,基于这个问题,您需要使用strpos(),请阅读这里的@AurelijusValeiša,好消息,我不敢相信我忘记了
$haystack
。我已经澄清了我的问题。我恐怕做相反的检查不是我的意思。谢谢这是strpos()的错误用法(语法错误),但是是的,基于这个问题,您需要使用strpos(),请阅读这里的@AurelijusValeiša,好消息,我不敢相信我忘记了
$haystack
。我已经澄清了我的问题。我恐怕做相反的检查不是我的意思。感谢+1为这项工作提供了正确的工具。取决于OP是否也想验证方案。非常感谢,做得很好。我对许多正则表达式方法感到困惑:)但这更简单。+1是适合该工作的正确工具。取决于OP是否也想验证方案。非常感谢,做得很好。我对许多正则表达式方法感到困惑:)但这更简单。