用 PHP 检查 URL 是不是有特定的字符串

Posted

技术标签:

【中文标题】用 PHP 检查 URL 是不是有特定的字符串【英文标题】:Check if URL has certain string with PHP用 PHP 检查 URL 是否有特定的字符串 【发布时间】:2011-10-30 10:26:45 【问题描述】:

我想知道 URL 中是否存在某些单词。

例如,如果 URL 中包含 car 一词,例如 www.domain.com/car/ 或 www.domain.com/car/audi/,它会回显“汽车存在”,如果没有,它会回显“没有车。

【问题讨论】:

php.net/manual/en/function.strpos.php 这也取决于您是否只是在寻找汽车一词,或者您是否还想要汽车或汽车的类型。您可能需要 preg_match、strpos、explode 和 in_array/array_search,这真的取决于。如果你想要一些简单的东西,只需按照建议使用 strpos 您可能会发现s($_SERVER['REQUEST_URI'])->contains('car') 很有帮助,如this standalone library 中所示。 如果网址中包含“害怕”这个词怎么办?应该打印“汽车存在”吗?如果不是,这里的大部分答案都是错误的。 【参考方案1】:

试试这样的。第一行构建您的 URL,其余行检查它是否包含“汽车”一词。

$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];


if (strpos($url,'car') !== false) 
    echo 'Car exists.';
 else 
    echo 'No cars.';

【讨论】:

这是一个很好的解决方案,但请注意这将匹配在任何地方都有汽车的 URL。例如www.domain.com/car-pricingwww.domain.com/carparks 将验证并输出Car exists。也许这对你来说无关紧要,但对其他人来说可能是相关的! $url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; echo count(strpos($url,'category')); 给我1,无论category 是否存在于Url 中。知道为什么吗?【参考方案2】:

我认为最简单的方法是:

if (strpos($_SERVER['REQUEST_URI'], "car") !== false)
// car found

【讨论】:

完美...我需要匹配 example.com/events/pagename 以找到其中包含“事件”的任何 url,它可以工作! 在过去的一周里,我在 4 个不同的项目中多次使用了它。简单的。谢谢。 这不会测试完整的url;只有路径。它不会针对方案、域、端口、查询参数或片段进行测试。【参考方案3】:
$url = " www.domain.com/car/audi/";
if (strpos($url, "car")!==false)
    echo "Car here";

else 
   echo "No car here :(";

strpos manual

【讨论】:

【参考方案4】:
if( strpos( $url, $word ) !== false ) 
    // Do something

【讨论】:

【参考方案5】:

用 php 为我工作

if(strpos($_SERVER['REQUEST_URI'], 'shop.php') !== false)
echo 'url contains shop';

【讨论】:

这与this three your old answer 基本相同。为什么要麻烦发布这样的答案?【参考方案6】:

这对我有用:

// Check if URL contains the word "car" or "CAR"
   if (stripos($_SERVER['REQUEST_URI'], 'car' )!==false)
   echo "Car here";
    else 
   echo "No car here";
   
如果要在 echo 中使用 html,请务必使用 ' ' 而不是 " "。
我使用此代码在我的网页 https://geaskb.nl/ 上显示警报
URL 包含单词“Omnik”的位置
但在 URL 中不包含“Omnik”一词的页面上隐藏警报。

解释条带:https://www.php.net/manual/en/function.stripos

【讨论】:

【参考方案7】:

strstr 那时候还不存在?

if(strstr($_SERVER['REQUEST_URI'], "car")) 
   echo "car found";

这一定是最简单的方法之一吧?

【讨论】:

【参考方案8】:

看看strpos函数:

if(false !== strpos($url,'car')) 
    echo 'Car exists!';

else 
    echo 'No cars.';

【讨论】:

【参考方案9】:

这肯定是正确的方法....

$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];


if (!strpos($url,'mysql')) 
echo 'No mysql.'; //swapped with other echo statement
 else 
echo 'Mysql exists.';

否则它应该以相反的方式报告......

【讨论】:

【参考方案10】:

从 PHP 8 (2020-11-24) 开始,可以使用str_contains:

if (str_contains('www.domain.com/car/', 'car')) 
   echo 'car is exist';
 else 
   echo 'no cars';

【讨论】:

【参考方案11】:

您可以尝试类似于 wordpress 工作原理的 .htaccess 方法。

参考:http://monkeytooth.net/2010/12/htaccess-php-how-to-wordpress-slugs/

但我不确定这是否是您所说的确切内容..

【讨论】:

【参考方案12】:
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];


if (!strpos($url,'car')) 
    echo 'Car exists.';
 else 
    echo 'No cars.';

这似乎行得通。

【讨论】:

这里走错路了。

以上是关于用 PHP 检查 URL 是不是有特定的字符串的主要内容,如果未能解决你的问题,请参考以下文章

PHP检查字符串是不是包含不带http://的url

检查字符串是不是包含 Velocity 中的特定子字符串

如何在php中检查当前的url,然后比较它是不是有一个特定的单词/短语

如何在URL中带有特定字符串的页面/帖子中执行短代码?

javascript 检查url是否有特定的字符串

有没有办法用php检查url中的特定参数?