用 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-pricing
或www.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 是不是有特定的字符串的主要内容,如果未能解决你的问题,请参考以下文章