【发布时间】:2011-01-11 18:24:27
【问题描述】:
为了通过我的 curl 脚本传递数组变量,我使用了serialize,因为 curl POST 元素不能是数组。
序列化后得到的字符串是:
a:10:{s:8:"question";s:18:"How are you doing?";s:11:"view_option";s:6:"select";s:10:"txt_answer";a:4:{i:0;s:8:"dsadsdsa";i:1;s:5:"dsads";i:2;s:10:"dsadsdsdsa";i:3;s:0:"";}s:4:"next";s:1:"9";s:7:"bgimage";s:0:"";s:9:"bck_color";s:0:"";s:12:"border_color";s:0:"";s:11:"select_font";s:1:"1";s:9:"font_size";s:4:"12px";s:4:"poll";s:9:"Get Poll!";}
Curl 做到了:
a:10:{s:8:\"question\";s:18:\"How are you doing?\";s:11:\"view_option\";s:6:\"select\";s:10:\"txt_answer\";a:4:{i:0;s:8:\"dsadsdsa\";i:1;s:5:\"dsads\";i:2;s:10:\"dsadsdsdsa\";i:3;s:0:\"\";}s:4:\"next\";s:1:\"9\";s:7:\"bgimage\";s:0:\"\";s:9:\"bck_color\";s:0:\"\";s:12:\"border_color\";s:0:\"\";s:11:\"select_font\";s:1:\"1\";s:9:\"font_size\";s:4:\"12px\";s:4:\"poll\";s:9:\"Get Poll!\";}
在发送到服务器之前。以上是我在服务器端看到的。现在,由于反斜杠,上面是 not 不可序列化的。
我现在该怎么办?如果我只是取消所有引号 - 我如何区分 CURL 放置的转义符和可能是数据一部分的转义符?
编辑
我在尝试反序列化转义字符串时遇到的错误是:
Notice: unserialize() [function.unserialize]: Error at offset 304 of 351 bytes in /var/www/localserver/test/ser.php on line 8
谢谢
日本
【问题讨论】:
-
我避免发送 PHP 数据序列化,而是选择 JSON。您可能想尝试一下。
-
我对 json 很陌生,虽然有时会用它来处理一个 api(主要是作为一个神秘的黑盒 :))。你的意思是我应该尝试
json_encode而不是serializecurl 或完全不同的东西。
标签: php serialization post curl