【问题标题】: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/,它会回显“汽车存在”,如果没有,它会回显“没有车。

【问题讨论】:

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

标签: php string url


【解决方案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';
      }
      

      【讨论】:

      【解决方案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.';
                  }
                  

                  这似乎行得通。

                  【讨论】:

                  • 这里走错路了。
                  猜你喜欢
                  • 2012-09-30
                  • 1970-01-01
                  • 2019-05-13
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-12-16
                  相关资源
                  最近更新 更多