0

嗨,我有这个 url,我想在 PHP 的等号之后获取最后一个词(oath2_access_token),其中最后一个词可以是任何东西,而不仅仅是 oath2_acc..

https://api.linkedin.com/v1/peoplesearch:(facets:(code,buckets:(code,name,count)))?facets=industry,network&facet=industry,12&facet=network,F&oauth2_access_token=oath2_access_token

请帮助抓住这个词或至少为我提供我可以学习和自己做的资源。

谢谢。

4

4 回答 4

3

您可以使用explode 获取等号之后的所有值,然后只获取数组的最后一个元素:

<?php
    $url = 'https://api.linkedin.com/v1/peoplesearch:(facets:(code,buckets:(code,name,count)))?facets=industry,network&facet=industry,12&facet=network,F&oauth2_access_token=oath2_access_token';
    $array = explode('=', $url);
    $value = end(array_values($array));
    echo $value;
?>
于 2013-10-21T09:24:09.210 回答
1

preg_match("/oauth2_access_token\=([a-z0-9_\-]+)/i", $url, $matches);

我猜这个模式应该覆盖令牌,如果不是,你需要在 [] 括号之间定义允许的字符。

转储 $matches 以查看哪个索引获取了令牌。

于 2013-10-21T09:20:10.143 回答
1

得到

(正如其他人指出的那样)我不确定你为什么不能简单地使用这个......

$token = $_GET['oauth2_access_token'];

http://php.net/_get

正则表达式

看到你用正则表达式标记了这个问题......

preg_match('/.*=(.*)/', $url, $matches);
$token = $matches[1];
  • .*==> 选择包括最后一个=符号在内的所有内容(因为*很贪心)
  • (.*)=> 选择最后一个=标志之后的所有内容并捕获它

http://php.net/preg_match
http://www.regular-expressions.info/

爆炸

您还可以拆分标志上的 url=并获取最后一个索引...

$url_array = explode('=', $url);
$token = end($url_array);

http://php.net/explode
http://php.net/end

于 2013-10-21T09:40:07.667 回答
1

要么使用 $_GET['oauth2_access_token']

或使用parse_url。:

<?php
$url = "https://api.linkedin.com/v1/peoplesearch:(facets:(code,buckets:(code,name,count)))?facets=industry,network&facet=industry,12&facet=network,F&oauth2_access_token=oath2_access_token";
$querystring_params = array();
parse_str(parse_url($url, PHP_URL_QUERY), $querystring_params);
echo $querystring_params["oauth2_access_token"];
?>
于 2013-10-21T09:22:28.323 回答