php 用fwrite函数写文件时字符转义问题

 
 
    用php脚本写文件时不会很少碰到转义字符的问题,顶多是单引号和双引号交换使用就可以解决,今天我通过web页面生成.php文件时碰到了字符被转义的问题,
    由于web页面有预览功能,因此将生成的php文件内容用ajax展示在页面上,在提交表单时将页面上显示的内容(为字符串)带到action层处理,此时,由于这个内容字符串在html中转了一圈,所以直接用fwrite函数生成为文件时,
单引号  ‘  成了   \',左尖括号  <  成了  $lt;  右尖括号  > 成了  $gt;  

看了手册发现有个函数stripslashes() 可以防止转义,因此在生成文件时可以单引号就不会被转义,仍是 ' ,但是这个函数防止转义的特殊字符不包括尖括号,因为stripslashes()函数只是去掉预定义字符前的反斜杠,而尖括号被转义后不是加反斜杠,所以这个函数对$lt;不起作用,后百般寻找,终于发现htmlspecialchars_decode()可以把转义的字符转化为实体字符, $lt; 成为 < 左尖括号, $gt; 成为 > 右尖括号,

最后,要生成文件的字符串就可以用以上两个函数防止字符转义了 stripslashes(htmlspecialchars_decode($str))




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值