Web开发 Archives - Tobycc
151
archive,category,category-web-develop,category-151,ajax_fade,page_not_loaded,,qode-theme-ver-13.5,qode-theme-bridge,disabled_footer_bottom,wpb-js-composer js-comp-ver-5.4.5,vc_responsive

Web开发

今天遇到一个非常诡异的问题,应用场景为将用户的输入数据,经过转义(php addslashes),插入到数据库中。查询时,从数据库里获得转义后的字符串,进行json解析。 主要测试了三个转义字符即\,',"的场景,单个符号和其他组合都能正确的转义和解析。但唯独\'连在一起时,json解析会报错 用户输入:test_\' 数据库里存储:test_\\\' api返回:test_\\\' json解析报错:ValueError: Invalid \escape 对应的\"情况 用户输入:test_\" 数据库里存储:test_\\\" api返回:test_\\\" json解析成功 出错的json字符串如下,并没有发现哪里不符合json规范的地方: {"code":0,"data":{"testId":"test-56e282ae59eec","testName":"test_\\\'"}} 成功的json字符串如下,只是'换成了" {"code":0,"data":{"testId":"test-56e282ae59eec","testName":"test_\\\""}} google查阅和问同事朋友也没有结果,最后通过限定了输入只能包括字母数字和下划线来避免这个解析问题,在这里记下来希望以后能解决 update: json的标准不支持单引号,统一用双引号,参考资料,但是其他语言的转义函数是会对单引号进行转义操作的。好吧,真蛋疼...

没想到昨天刚搭完wordpress今天就能更新点问题,今天在家尝试打开后发现速度非常慢,基本上半分钟才能打开一个网页,开始排查 1、打开云服务器下部署的discuz页面,速度很快,排除云服务器的问题和网络攻击问题 2、在服务器下,把这两天新装的两个插件从/wp-content/plugins下目录mv到临时目录,速度依然很慢,基本排除插件问题 3、chrome下F12打开调试模式,重新加载主页,发现有一个api请求一直Pending最终导致超时 查看请求详细信息,发现是请求的url是fonts.googleapi.com,估计是wordpress或主题自带的动态获取字体的功能,猜测可能是和国内请求google不稳定有关 4、搜索wordpress google api相关内容,查到以下资料 http://www.chinaz.com/web/2015/0107/378419.shtml http://blog.csdn.net/missyouzhang/article/details/30977473 http://jingyan.baidu.com/article/b24f6c82c39fd486bfe5daa8.html 5、按照查到的资料,将 /wp-includes/script-loader.php中的googleapi替换成国内的useso,重试,速度还是很慢。调试模式发现还是有googleapi的请求 6、在wordpress根目录执行grep googleapi ./* -r查询所有代码,发现很多代码中都有请求googleapi,其中当前所用的主题下/library/functions/functions.php也请求了fonts.googleapi.com,依然替换成useso,重试速度恢复正常,秒打开。 7、为了防止其他地方googleapi在以后引起的问题,直接在wordpress根目录下执行 [cc lang="bash"]sed -i "s/googleapi/useso/g" `grep googleapi ./* -rl`[/cc] 将所有的googleapi替换成useso   update:更新后调试模式发现请求的url已经变成了fonts.useso.com,但请求立刻返回失败了,不过表面看不出什么明显的区别。手动请求api地址,提示协议错误。测试后发现/wp-includes/script-loader.php中请求的是https://fonts.useso.com,修改为http://fonts.useso.com重新在调试模型下打开,发现请求成功,应该是国内的库还不支持加密的https。 同理在wordpress根目录下执行以下命令将useso的三个地址协议从https改成http [cc lang="bash"] sed -i "s/https:\/\/fonts.useso/http:\/\/fonts.useso/g" `grep https://fonts.useso ./* -rl sed -i "s/https:\/\/ajax.useso/http:\/\/ajax.useso/g" `grep https://ajax.useso ./* -rl` sed -i "s/https:\/\/libs.useso/http:\/\/libs.useso/g" `grep https://libs.useso ./* -rl [/cc] 不过对速度没有明显影响,也看不出明显差别,可以不做此修改。   8、今天在公司打开一直没问题应该是开了vpn。昨天在家打开页面时,速度很快,可能是googleapi只是不稳定地间歇性无法访问。  ...