通过 php 从 URL 打印特定部分

问题描述 投票:0回答:1

我只想打印 URL 中的特定部分,例如,如果我收到这样的 URL 响应:

https://tvoauth.zapi.com/?client=zapi-web-1&session=XRpC8tmn2_VUz6temt_j19BIGymiYyd5ZOLoWtp1H5U&scopes=false&redirect=https%3A%2F%2Ftv.zapi.com

我只想准确打印这部分:

XRpC8tmn2_VUz6temt_j19BIGymiYyd5ZOLoWtp1H5U

我尝试过像这样使用 substr :

$string=$headers['location'][0];

$substring = substr($string, strpos($string, '=') + 1);
// Use substr() again to get the part of the string before the semicolon
$final_string = substr($substring, 0, strpos($substring, ';'));
   file_put_contents("xxx", $final_string);
   $xtoken = file_get_contents("xxx");

但它不会在我的文件 xxx 中打印任何内容

但是如果我只这样应用它:

$string=$headers['location'][0];

   file_put_contents("xxx", $string);
   $xtoken = file_get_contents("xxx");

它会打印整行,正如我上面提到的。

希望我找到正确的指南,以便能够仅选择和打印我想要的特定部分。

谢谢你。

php arrays substr
1个回答
0
投票

也许 parse_urlparse_str 的组合会有帮助?

举个例子:

<?php

$url = 'https://tvoauth.zapi.com/?client=zapi-web-1&session=XRpC8tmn2_VUz6temt_j19BIGymiYyd5ZOLoWtp1H5U&scopes=false&redirect=https%3A%2F%2Ftv.zapi.com';

$parsed = parse_url($url);

var_dump($parsed);

$output = [];

parse_str($parsed['query'], $output);

var_dump($output);

echo $output['session'];

给出输出:

array(4) {
  ["scheme"]=>
  string(5) "https"
  ["host"]=>
  string(16) "tvoauth.zapi.com"
  ["path"]=>
  string(1) "/"
  ["query"]=>
  string(117) "client=zapi-web-1&session=XRpC8tmn2_VUz6temt_j19BIGymiYyd5ZOLoWtp1H5U&scopes=false&redirect=https%3A%2F%2Ftv.zapi.com"
}

array(4) {
  ["client"]=>
  string(10) "zapi-web-1"
  ["session"]=>
  string(43) "XRpC8tmn2_VUz6temt_j19BIGymiYyd5ZOLoWtp1H5U"
  ["scopes"]=>
  string(5) "false"
  ["redirect"]=>
  string(19) "https://tv.zapi.com"
}

XRpC8tmn2_VUz6temt_j19BIGymiYyd5ZOLoWtp1H5U
© www.soinside.com 2019 - 2024. All rights reserved.