我知道您可以从当前所在页面轻松获取参数,但是您可以轻松地从任何URL字符串中执行相同操作吗?
我需要从像https://market.android.com/details?id=com.zeptolab.ctr.paid?t=W251bGwsMSwxLDIxMiwiY29tLnplcHRvbGFiLmN0ci5wYWlkIl0
这样的字符串中获取“id”参数。
如何使用PHP执行此操作?是否有内置函数,还是我必须使用正则表达式?
答案 0 :(得分:4)
$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
答案 1 :(得分:2)
是的,你可以。
来自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
答案 2 :(得分:2)
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
答案 3 :(得分:0)
您可以使用parse_str(),然后访问变量$ id。