快速掌握PHP引号转义原理_PHP教程

WBOY
Release: 2016-07-15 13:35:09
Original
913 people have browsed it

我们在运用

PHP中有三个设置可以实现自动对’(单引号),”(双引号),(反斜线)和 NULL 字符转移。

PHP称之为魔术引号,这三项设置分别是

magic_quotes_gpc

影响到 HTTP 请求数据(GET,POST 和 COOKIE)。不能在运行时改变。在 PHP 中默认值为 on。

magic_quotes_runtime

如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。该选项可在运行的时改变,在 PHP 中的默认值为 off。

magic_quotes_sybase

如果打开的话,将会使用单引号对单引号进行PHP引号转义而非反斜线。此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话,单引号将会被转义成 ”。而双引号、反斜线 和 NULL 字符将不会进行转义。

虽然方便的实现了对特殊符号的自动PHP引号转义,但是这样会使得程序效率降低,并导致程序可移植变得麻烦。在不知道服务器ini设置的情况下,还需要调用get_magic_quotes_gpc() ,get_magic_quotes_runtime() 或ini_get()来检测状态。

例如:

  1. if (!get_magic_quotes_gpc()) {  
  2. $lastname = addslashes
    ($_POST['lastname']);  
  3. } else {  
  4. $lastname = $_POST['lastname'];  
  5. }   
Copy after login

因此最好关闭php的魔术引号,根据情况手动用addslashes(),stripslashes()来转义和取消PHP引号转义。可以学习discuz的做法,在配置文件中加入set_magic_quotes_runtime(0);来取消转义。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/445921.htmlTechArticle我们在运用 PHP中有三个设置可以实现自动对(单引号),(双引号),(反斜线)和 NULL 字符转移。 PHP称之为魔术引号,这三项设置分别...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!