我正在使用名为parse_str的PHP函数将一些URL编码数据(如“name = blah& number = 123”)转换为PHP数组。它确实工作正常,但它放了一个“放大器”在结果关联数组中的每个键的开头,除了第一个键。例如:
response=Fail&responsecode=1&description=DUPLICATE_TRANSACTION
转换为以下数组:
Array ( [ \"1.0\"
encoding=\"utf-8\"?>
response=Fail
[amp;responsecode] => 1
[amp;description] => DUPLICATE_TRANSACTION)
使用以下代码:
parse_str($response, $response_array);
print_r($response_array);
我不确定为什么要添加这些“放大器”。这有什么问题?
答案 0 :(得分:0)
<?php
$response = 'response=Fail&responsecode=1&description=DUPLICATE_TRANSACTION';
parse_str($response, $response_array);
print_r($response_array);
Array
(
[response] => Fail
[responsecode] => 1
[description] => DUPLICATE_TRANSACTION
)
但是,您在其中一条评论中提供了有用的提示:
string(614) " response=Fail&responsecode=1&description=DUPLICATE_TRANSACTION"
这显然不是614字节的字符串。您的数据不是response=Fail&responsecode=1&description=DUPLICATE_TRANSACTION
。
那,以及你得到这个的事实:
[ \"1.0\"
encoding=\"utf-8\"?>
...建议您实际拥有XML或HTML文档,但是您要让浏览器将其呈现为HTML,从而隐藏标记。请使用浏览器的“查看源”功能(通常为 Ctrl + U )查看实际输入。