gpt4 book ai didi

php - 无法访问 php 中的数组值

转载 作者:可可西里 更新时间:2023-10-31 23:28:10 25 4
gpt4 key购买 nike

有一个由 POST 数据组成的 php 数组 $this->log->write(print_r($array, true));

Array
(
[accept] => */*
[accept-encoding] => gzip, deflate
[signature] => 37df88b6f845c21b1cda84cf3d3b94b0b15759b74f7387ceb0e9c8a6247c211f
[connection] => keep-alive
[content-length] => 610
[user-agent] => python-requests/2.10.0
)

$this->log->write(var_export($array , true).'var_export');

array (
'accept' . "\0" . '' => '*/*',
'accept-encoding' . "\0" . '' => 'gzip, deflate',
'signature' . "\0" . '' => '37df88b6f845c21b1cda84cf3d3b94b0b15759b74f7387ceb0e9c8a6247c211f',
'connection' . "\0" . '' => 'keep-alive',
'content-length' . "\0" . '' => '610',
'user-agent' . "\0" . '' => 'python-requests/2.10.0',
)var_export

问题是我无法使用 $array['signature']; 访问数组值,它是空的。

抱歉,这个问题看起来很无聊,但事实并非如此。之前使用数组没问题。也试过了 $array["signature"]; $array->signature; 返回空。请帮忙

最佳答案

如您所见,您的 key 以某种方式附加了 \0(如果我没记错的话,这是 C 中的结束字符串字符)

这就是为什么当您尝试收集 key signature 时什么也没有,因为 key 是 signature\0

因此,您有两个解决方案,第一个是调用 $array['signature' 。 "\0"] 其次是进行数组键清理。

像这样:

$keys = array_map(function($key){ return trim($key); }, array_keys($array));
$array = array_combine($keys, array_values($array));
  • 第 1 步:修剪所有键
  • 第 2 步:将经过清理的键与值重新关联

编辑

找出原因...至少如果您使用的是 PHP7

事实上,如果您从函数返回一个数组,这将在每个数组键的末尾添加空字节。请参阅 github 问题 https://github.com/CopernicaMarketingSoftware/PHP-CPP/issues/248顺便说一句,我猜你的 PHP7 版本是旧的 :p 记得更新它 ;)

关于php - 无法访问 php 中的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40867238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com