【问题标题】:How to check for certain values in url如何检查 url 中的某些值
【发布时间】:2013-06-11 03:58:03
【问题描述】:

是否可以检查 url 是否包含某些值,例如 URL "www.example.com/dummy1/dummy2/dummy3/en/dummy4/tim/" 是否有 “en” 与否。


谢谢

【问题讨论】:

  • in_array('en', explode('/', $url)) 可能会起作用,假设您的参数没有什么奇怪的事情发生。 parse_url 在这样做之前,正如@zaw 建议的那样,虽然会更好:)

标签: php url string-search


【解决方案1】:
if (in_array('en', explode('/', $url))) { 
    ...
}

【讨论】:

    【解决方案2】:

    上面的答案可能是你要找的,但除了搜索你的价值之外,这里是实际检索 URL 的方法...

    $url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //example.com/dummy1/dummy2/dummy3/en/dummy4/tim/
    $url = $_SERVER['REQUEST_URI']; // /dummy1/dummy2/dummy3/en/dummy4/tim/
    

    我假设您想知道用户是否在包含“en”的页面上,在这种情况下您确实不需要检查域名,因此您可能会执行类似...

    $contains_en = (strpos($_SERVER['REQUEST_URI'], 'en') !== false ? true : false);
    

    你应该注意,如果你在 url 的任何地方都有字符串 en ,使用 strpos 也会返回 true(实际上它会返回匹配的开始位置),例如单词 then 会返回 true,所以如果你重新查找/en/可以使用其他用户描述的in_array方法进行检查,或者直接使用该方法检查字符串'/en/'

    【讨论】:

      【解决方案3】:

      您可以使用strpos 函数来查找一个字符串在另一个字符串中的出现:

      喜欢这个

      $url = 'www.example.com/dummy1/dummy2/dummy3/en/dummy4/tim/';
      
      if (strpos($url,'en') !== false) {
          echo 'true';
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-24
        相关资源
        最近更新 更多