将JS中的数组post到php程序
$('#pics').val(uploaded_pics);
然后serialize,保存到数据库
'pics' => empty($POST['pics'])?'':addslashes(serialize($POST['pics'])),
通过unserialize取出来的时候,不是Array对象
$blog['pics'] = empty($blog['pics'])?array():unserialize($blog['pics']);
$blog['pics']值输出为以下格式
[{\"albumid\":\"27785\",\"thumb\":\"attachment/201203/5/5_1330951237xdG6.jpg.thumb.jpg\",\"src\":\"attachment/201203/5/5_1330951237xdG6.jpg\",\"desc\":\"\",\"picid\":\"176105\"},{\"albumid\":\"27785\",\"thumb\":\"attachment/201203/5/5_1330951237fF5C.jpg.thumb.jpg\",\"src\":\"attachment/201203/5/5_1330951237fF5C.jpg\",\"desc\":\"\",\"picid\":\"176106\"},{\"albumid\":\"27785\",\"thumb\":\"attachment/201203/5/5_13309512374w4T.jpg.thumb.jpg\",\"src\":\"attachment/201203/5/5_13309512374w4T.jpg\",\"desc\":\"\",\"picid\":\"176107\"},{\"albumid\":\"27785\",\"thumb\":\"attachment/201203/5/5_1330951238sjSE.jpg.thumb.jpg\",\"src\":\"attachment/201203/5/5_1330951238sjSE.jpg\",\"desc\":\"\",\"picid\":\"176108\"}]请问怎么弄成php的数组来用呢?
另外,这段文本中可能有中文 我的程序是gbk版本的 不知道会有乱码不 谢谢
$('#pics').val(uploaded_pics);
然后serialize,保存到数据库
'pics' => empty($POST['pics'])?'':addslashes(serialize($POST['pics'])),
通过unserialize取出来的时候,不是Array对象
$blog['pics'] = empty($blog['pics'])?array():unserialize($blog['pics']);
$blog['pics']值输出为以下格式
[{\"albumid\":\"27785\",\"thumb\":\"attachment/201203/5/5_1330951237xdG6.jpg.thumb.jpg\",\"src\":\"attachment/201203/5/5_1330951237xdG6.jpg\",\"desc\":\"\",\"picid\":\"176105\"},{\"albumid\":\"27785\",\"thumb\":\"attachment/201203/5/5_1330951237fF5C.jpg.thumb.jpg\",\"src\":\"attachment/201203/5/5_1330951237fF5C.jpg\",\"desc\":\"\",\"picid\":\"176106\"},{\"albumid\":\"27785\",\"thumb\":\"attachment/201203/5/5_13309512374w4T.jpg.thumb.jpg\",\"src\":\"attachment/201203/5/5_13309512374w4T.jpg\",\"desc\":\"\",\"picid\":\"176107\"},{\"albumid\":\"27785\",\"thumb\":\"attachment/201203/5/5_1330951238sjSE.jpg.thumb.jpg\",\"src\":\"attachment/201203/5/5_1330951238sjSE.jpg\",\"desc\":\"\",\"picid\":\"176108\"}]请问怎么弄成php的数组来用呢?
另外,这段文本中可能有中文 我的程序是gbk版本的 不知道会有乱码不 谢谢
输出时空白呢
$str = stripslashes($jsonStr); //去掉\
$resultArr = json_decode($str); //页面本身编码是utf-8就不用 iconv()echo '<pre>';
var_dump($resultArr);
我用这种方式能转成数组
$a = json_decode(iconv("GBK", "UTF-8", stripslashes(unserialize($jsonStr))));
showmessage(count($a));
输出4
showmessage(count($a[0]));就输出空格
var_dump($a);也是空格
这又是为什么呢
如果你直接用Jquery的Val来赋数组值给Input的话..Js默认应该用,来连接的呀..
看你打印出来的格式..你直接解json不就行了?
解json输出时空白呢
由于数组不可能直接传递,所以已被转换成某种格式的字符串了。这个工作由js完成
根据你示例的数据,采用的是 json 格式2、php 会对传入的参数做转义处理,所以入库时不需要再做转义处理
如果已经 addslashes 了,则必须 stripslashes3、由于传入的本身就是串,所以序列化(serialize)也是不必要的4、在用 json_decode 解码时,必须保证数据是这样的
$blog['pics']值输出为以下格式
[{"albumid":"27785","thumb":"attachment/201203/5/5_1330951237xdG6.jpg.thumb.jpg","src":"attachment/201203/5/5_1330951237xdG6.jpg",....