PHP文件获取内容 - 仅文本的特定部分

时间:2017-07-18 17:46:18

标签: php

你只需要解决这个php问题

我需要的是只获取从远程服务器获取的文本的特定部分。所以远程服务器给了我这种内容

...":" http://xxxxxxxx.com?source=yyyyy&service=zzzzz&token=47baiufbweiwrwrqwr21"" ...........

我只需要回到这一部分:令牌= 47baiufbweiwrwrqwr21

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

使用parse_url()和preg_match()

$url = 'http://xxxxxxxx.com?source=yyyyy&service=zzzzz&token=47baiufbweiwrwrqwr21';

$query = parse_url($url, PHP_URL_QUERY);
         preg_match('/token=([a-z0-9]+)/i', $query, $token);

echo $token[1];

parse_url()返回URL的组件。 您希望拥有特定的Query-Parameter,因此您可以使用PHP_URL_QUERY-Component。在此之后,您使用正则表达式提取令牌,该正则表达式搜索参数名称"令牌"然后是" ="。然后你会捕捉到你想要的所有角色(a-z和0-9)。您为i-Delimiter设置了一个不区分大小写的搜索。 $ token [1]返回Subpattern(Brackets)中的Match。

如果从文件中获取URL,则可以使用file_get_contents()将其读入字符串。

答案 1 :(得分:0)

您可以使用substr和stripos 这将确保您获得正确的部分,即使变量的顺序不同且不区分大小写。

https://3v4l.org/q35f0

$url = 'http://xxxxxxxx.com?source=yyyyy&token=47baiufbweiwrwrqwr21&service=zzzzz';

$pos = stripos($url, "token");
$pos2 = stripos($url, "&", $pos);

If($pos2 > 0){
    Echo substr($url, $pos, $pos2-$pos);
}Else{
    Echo substr($url, $pos);
}

编辑抱歉我的手机自动修正了我的stripos到strpos。搞笑如何我的手机开始学习PHP。