PHP防止单引号‘‘和双引号““被转义为斜杠的解决方案

问题背景:
本人使用某企业CMS的PHP源码,PHP版本为5.3,基于宝塔面板来一键安装的.
该企业CMS源码其中有采集功能,而采集功能需要根据html标签和属性等等作为标识符,而html中属性就以双引号作为属性值的标识符.
问题就在于,本人点击了保存采集规则后开始采集,发现采集失败
重新打开之前保存了的采集规则的设置页面,发现采集规则中的双引号被转义为斜杠,故而导致采集器无法匹配到指定内容.
在这里插入图片描述
原因:
起初,我以为是设置问题,或者是源码本身有问题,因此依照这个推断进行了修改,但无一例外,双引号都会被自动转义为斜杠.
这时我根据java开发时所遇到的问题举一反三,java中有时也会出现自动转义的机制.那么,是不是并非源码本身的问题,而是该源码所基于的php有问题?
于是我百度了下,发现php.ini文件中可以设置自动转义,并且默认是开启的.
而我所保存的采集规则,在经过前端点击了’保存采集规则’进而被php处理时,发生了转义现象.
解决:
编辑php.ini文件,搜索magic_quotes_gpc这一个设置,将从On改为Off
在这里插入图片描述
这里我是用宝塔面板去修改的.
参考:https://www.jb51.net/article/15943.htm

前者方法昨晚试过了,不管用.后来今天参考这个文章
https://blog.csdn.net/weixin_43376075/article/details/107499861
进行修改,但还是不行.可文章中提及自动转义机制自PHP5.4版本废除,所以我安装了PHP5.5版本试了试.经过验证,php5.5版本可以解决问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值