【问题标题】:PHP get parameter from URL string (not current page)PHP 从 URL 字符串获取参数(不是当前页面)
【发布时间】:2012-01-08 00:48:38
【问题描述】:

我知道您可以轻松地从当前所在的页面获取参数,但您可以轻松地从任何 URL 字符串中获取参数吗?

我需要从像https://market.android.com/details?id=com.zeptolab.ctr.paid?t=W251bGwsMSwxLDIxMiwiY29tLnplcHRvbGFiLmN0ci5wYWlkIl0 这样的字符串中获取“id”参数。

我怎样才能用 PHP 做到这一点?是否有内置函数,或者我必须使用正则表达式?

【问题讨论】:

    标签: php regex url-parameters


    【解决方案1】:

    您可以使用parse_urlparse_str 的组合:

    $url = 'https://market.android.com/details?id=com.zeptolab.ctr.paid?t=W251bGwsMSwxLDIxMiwiY29tLnplcHRvbGFiLmN0ci5wYWlkIl0';
    $arr = parse_url($url);
    parse_str($arr['query']);
    echo $id; //com.zeptolab.ctr.paid?t=W251bGwsMSwxLDIxMiwiY29tLnplcHRvbGFiLmN0ci5wYWlkIl0
    

    【讨论】:

      【解决方案2】:

      是的,你可以。

      parse_url()

      来自 PHP 文档:

      <?php
      $url = 'http://username:password@hostname/path?arg=value#anchor';
      print_r(parse_url($url));
      echo parse_url($url, PHP_URL_PATH);
      ?>
      

      上面的例子会输出:

      Array
      (
          [scheme] => http
          [host] => hostname
              [user] => username
          [pass] => password
          [path] => /path
          [query] => arg=value
          [fragment] => anchor
      )
      
      /path
      

      【讨论】:

        【解决方案3】:

        parse_url():

        function extractGETParams($url)
        {
          $query_str = parse_url($url, PHP_URL_QUERY);
          $parts = explode('&', $query_str);
          $return = array();
        
          foreach ( $parts as $part )
          {
            $param = explode('=', $part);
            $return[$param[0]] = $param[1];
          }
        
          return $return;
        }
        
        $url = 'http://username:password@hostname/path?arg=value&arg2=value2#anchor';
        
        var_dump( extractGETParams($url) );
        

        在 Codepad.org 上:http://codepad.org/mHXnOYlc

        【讨论】:

          【解决方案4】:

          你可以使用parse_str(),然后访问变量$id。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-01-30
            • 2011-06-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-06-23
            • 2016-12-31
            相关资源
            最近更新 更多