0

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

我需要从像https://market.android.com/details?id=com.zeptolab.ctr.paid?t=W251bGwsMSwxLDIxMiwiY29tLnplcHRvbGFiLmN0ci5wYWlkIl0.

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

4

4 回答 4

4

您可以使用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
于 2011-11-28T15:16:57.317 回答
2

Yes you can.

parse_url()

From the PHP docs:

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

The above example will output:

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

/path
于 2011-11-28T15:13:33.320 回答
2

There's 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) );

On Codepad.org: http://codepad.org/mHXnOYlc

于 2011-11-28T15:14:05.397 回答
0

You can use parse_str(), and then access the variable $id.

于 2011-11-28T15:12:59.970 回答