如何解决 magic_quotes_sybase 配置项对 stripslashes 方法的影响?
Jun 06, 2016 pm 08:47 PM
比如 hello\'s world 经过 addslashes 处理后会变成如下字符串:
<code>hello\\\'s world </code>
此时,使用 stripslashes 处理这个字符串,如果 magic_quotes_sybase 项未开启,两个反斜线将会全部被删除,即变成如下字符串:
<code>hello's world </code>
如果单纯地通过 ini_set('magic_quotes_sybase', 0); 则会改变当前系统的配置项,有没有办法在不改变 magic_quotes_sybase 值的情况下,得到最原始的只包含一个反斜杠单字符串(hello\'s world),该怎么破呢?
参考文档:http://cn2.php.net/manual/zh/function.stripslashes.php
回复内容:
比如 hello\'s world 经过 addslashes 处理后会变成如下字符串:
<code>hello\\\'s world </code>
此时,使用 stripslashes 处理这个字符串,如果 magic_quotes_sybase 项未开启,两个反斜线将会全部被删除,即变成如下字符串:
<code>hello's world </code>
如果单纯地通过 ini_set('magic_quotes_sybase', 0); 则会改变当前系统的配置项,有没有办法在不改变 magic_quotes_sybase 值的情况下,得到最原始的只包含一个反斜杠单字符串(hello\'s world),该怎么破呢?
参考文档:http://cn2.php.net/manual/zh/function.stripslashes.php
用get_magic_quotes_gpc()
函数动态检测。
另外ini_set()
函数本来就是脚本内部有效的啊。要是php设置谁都能改那还不翻天了……
WordPress的实践就是用ini_set()
把不把握的默认设置拆了:(WP 3.8 /wp-settings.php
源码)
// Disable magic quotes at runtime. Magic quotes are added using wpdb later in wp-settings.php. @ini_set( 'magic_quotes_runtime', 0 ); @ini_set( 'magic_quotes_sybase', 0 );
另外注意:
magic_quotes_sybase
Deprecated in PHP 5.3.0. Removed in PHP 5.4.0.
即在最新的php 5.4中不再有这个问题了。

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian

Comment configurer Visual Studio Code (VS Code) pour le développement PHP
