总结
豆包 AI 助手文章总结

php 数组转换字符串函数, 我用thinkphp ,json_encode保存中文,反斜杠消失了

php中文网
发布: 2016-06-23 13:43:49
原创
1676人浏览过

php 数组转换字符串函数, 我用thinkphp ,json_encode保存中文,反斜杠消失了
原本是这个
[{"title":"u5173u6ce8u65f6u56deu590d","url":"/index.php?g=User****"}]
结果变成这个了
[{"title":"u5173u6ce8u65f6u56deu590d","url":"/index.php?g=User****"}]
就是中文,用json_decode 处理,保存到数据库就没有反斜杠了, 

php版本 5.2, apache 2.2

我记得有一个可以保存变量类型 的, 数组转换字符串, 忘记叫什么了


回复讨论(解决方案)

散分了
serialize($array);
unserialize($array);
有惊喜, 找到了

是Thinkphp的问题?
直接用php的json_encode不会没有反斜杠的。

echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';$arr = array(    array(        'title' => '关注时回复',        'url' => '/index.php?g=User****'    ));$str = json_encode($arr); //echo $str.'<br>';echo '<pre class="brush:php;toolbar:false">';print_r(json_decode($str,true));echo '
登录后复制
登录后复制
';

[{"title":"u5173u6ce8u65f6u56deu590d","url":"/index.php?g=User****"}]
Array
(
    [0] => Array
        (
            [title] => 关注时回复
            [url] => /index.php?g=User****
        )

)

应该是环境的原因,斜杠被处理掉。

你看下有没有对数据进行 stripslashes 之类的处理,在保存到数据库之前

接分了  恭喜楼主

你看下有没有对数据进行 stripslashes 之类的处理,在保存到数据库之前



不清楚,应该是处理了, 
请问在哪里设置?
我用 json_decode 有反斜杠, 保存到数据库就没有 了,
还要本地没事,上传服务器就不行了,  配置一样
本地php 5.5
服务器php 5.2的,  
用 serialize 这个函数代替了, 
返回字符串, 数组 变量类型都会保存,不变

是Thinkphp的问题?
直接用php的json_encode不会没有反斜杠的。

echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';$arr = array(    array(        'title' => '关注时回复',        'url' => '/index.php?g=User****'    ));$str = json_encode($arr); //echo $str.'<br>';echo '<pre class="brush:php;toolbar:false">';print_r(json_decode($str,true));echo '
登录后复制
登录后复制
';

[{"title":"u5173u6ce8u65f6u56deu590d","url":"/index.php?g=User****"}]
Array
(
    [0] => Array
        (
            [title] => 关注时回复
            [url] => /index.php?g=User****
        )

)


感觉是thinkphp 的问题, 保存之后就没有了, $db->save(json);

接点分用用

save 是保存到数据库,那么你的 "u5173u6ce8u65f6u56deu590d" 中的  不需要转义吗?TP 会替你做?

save 是保存到数据库,那么你的 "u5173u6ce8u65f6u56deu590d" 中的  不需要转义吗?TP 会替你做?



明白了 , 需要 这个是吗?
str_replace("/\/","\\",json)
是不是写入数据库都需要转义? 

是的,写入数据库的时候要转义特殊字符

是的,写入数据库的时候要转义特殊字符


恩 ,谢谢, 以前 用asp 的, 只有是变量里面的值 都不用管, 就可以写入数据库 ,知道了 
谢谢  结贴了
,json_encode(array())  ;//写入数据库反斜杠消失, 需要转义
登录后复制
 

asp 中  不是特殊字符,但 ' 还是要转义的

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号