从curl响应中获取可用的数组,该响应被格式化为php数组
那么$outputArray将包含:从curl响应中获取可用的数组,该响应被格式化为php数组,php,arrays,curl,multidimensional-array,Php,Arrays,Curl,Multidimensional Array,那么$outputArray将包含: $ch = curl_init("url"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "test"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1)
$ch = curl_init("url");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "test");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$outputArray = curl_exec($ch);
因此,我认为PHP可以看到它是一个数组,并将其视为数组,但当我执行以下操作时
Array
(
[0] => Array
(
[r1] => test response
[r2] => 4
[r3] => 32
)
)
它给出了一个错误:
echo $outputCode[0][r_title]."\n";
(第75行为正上方的回音)
我做错了什么?您的
$outputArray
是一个字符串,似乎包含类似print\u r()的输出
PHP无法猜测字符串代表数组——而且它与用于声明数组的语法并不接近;所以这是行不通的
解决办法是:
- 修改正在调用的远程脚本,使其返回一个包含一些序列化数据的字符串
- i、 e.和数组,用
序列化
- 或者使用
json\u编码
- 在您这边,取消序列化数据,以恢复阵列,
- 使用
取消序列化
- 或
json\u解码
您获取的数据可能不是数组,而是包含数组结构的字符串,例如,print\r()
输出。此类数据不会自动转换回PHP数组
如果您可以控制从中查询的页面,那么可以使用类似或的方法对数据进行编码,在查询端,分别使用(或)对从curl中获取的数据进行解码。这些函数将为您提供一个合适的PHP数组
如果你无法更改URL输出数据的方式,我唯一能看到的方法就是使用-如果需要,我可以详细说明,但这真的是个坏主意。好的,是的,我更改了我查询的页面:)谢谢。如果我们有伟大的思想(好吧,那将是个好消息,不是吗?),那么,是的,他们有;-)我当然会给你们两个打勾,因为两个答案都一样正确,但遗憾的是我不能。波亚,别担心:-)重要的是你们得到了一个(好的,两个)答案。
PHP Fatal error: Cannot use string offset as an array in /www/test.php on line 75