用php在复杂的url中抓取一个单词

用php在复杂的url中抓取一个单词,php,regex,Php,Regex,嗨,我有这个url,我想在PHP的等号后面抓住最后一个单词(oath2\u访问\u令牌),最后一个单词可以是任何东西,而不仅仅是oath2\u acc https://api.linkedin.com/v1/peoplesearch:(facets:(代码,bucket:(代码,名称,计数))?facets=行业,网络&facet=行业,12&facet=网络,F&oauth2\u访问\u令牌=oath2\u访问\u令牌 请帮我抓住这个词,或者至少提供我可以学习和自己动手的资源 谢谢。preg\

嗨,我有这个url,我想在PHP的等号后面抓住最后一个单词(oath2\u访问\u令牌),最后一个单词可以是任何东西,而不仅仅是oath2\u acc

https://api.linkedin.com/v1/peoplesearch:(facets:(代码,bucket:(代码,名称,计数))?facets=行业,网络&facet=行业,12&facet=网络,F&oauth2\u访问\u令牌=oath2\u访问\u令牌

请帮我抓住这个词,或者至少提供我可以学习和自己动手的资源

谢谢。

preg\u match(/oauth2\u access\u token\=([a-z0-9\-]+)/i“,$url,$matches)

我想这个模式应该包括令牌,如果没有,您需要定义[]括号之间允许的字符

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

preg\u match(/oauth2\u access\u token\=([a-z0-9\-]+)/i“,$url,$matches)

我想这个模式应该包括令牌,如果没有,您需要定义[]括号之间允许的字符

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

使用 $\u GET['oauth2\u访问\u令牌']

或使用:


使用 $\u GET['oauth2\u访问\u令牌']

或使用:


您可以使用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;
?>

您可以使用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;
?>

GET (正如其他人指出的)我不知道为什么你不能简单地使用这个

$token = $_GET['oauth2_access_token'];

正则表达式 既然你已经用正则表达式标记了这个问题

preg_match('/.*=(.*)/', $url, $matches);
$token = $matches[1];
  • *=
    =>选择最后一个
    =
    符号之前的所有内容(因为
    *
    是贪婪的)
  • (.*)
    =>选择最后一个
    =
    签名后的所有内容并捕获它

爆发 您还可以拆分
=
符号上的url,并获取最后一个索引

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

获取 (正如其他人指出的)我不知道为什么你不能简单地使用这个

$token = $_GET['oauth2_access_token'];

正则表达式 既然你已经用正则表达式标记了这个问题

preg_match('/.*=(.*)/', $url, $matches);
$token = $matches[1];
  • *=
    =>选择最后一个
    =
    符号之前的所有内容(因为
    *
    是贪婪的)
  • (.*)
    =>选择最后一个
    =
    签名后的所有内容并捕获它

爆发 您还可以拆分
=
符号上的url,并获取最后一个索引

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


$\u GET['oauth2\u访问令牌]
不起作用?不起作用。。我无法通过这种方式获取,因为只有url请求才会被替换为oath2\u访问\u令牌(值)。这就是你要找的吗?您是否确实需要访问令牌或url中最后一个字符串?
$\u GET['oauth2\u access\u token']
不起作用?不。。我无法通过这种方式获取,因为只有url请求才会被替换为oath2\u访问\u令牌(值)。这就是你要找的吗?您真的需要访问令牌还是url中最后一个字符串?