php基础知识-魔术引用
示例代码下载页
http://xieye.iteye.com/blog/1336095(在附件)
魔术引用是指:服务器对一些字符做自动转换,以方便程序员的做法。
来源:最开始,php的设计者为了方便程序员将表单数据添加到数据库,在配置文件中加了一个设置,当选项打开时,魔术引用启用,当选项关闭时,魔术引用不启用。
php.ini大约441行
magic_quotes_gpc = Off
注释是; Magic quotes for incoming GET/POST/Cookie data.
注释表明为on时会对进入服务器的get/post/cookie数据做自动转换。
1)addslashes函数
介绍魔术引用之前,先介绍addslashes函数
该函数返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。
一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。
默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
例子 1. addslashes() 示例
http://localhost/command/peixun/magicquote/1.php
<?php
$str = "Is your name O'reilly?";
// 输出:Is your name O\'reilly?
echo addslashes($str);
2)测试配置选项magic_quotes_gpc
首先确保magic_quotes_gpc = On,如果是off或0,则需要修改,并重启apache服务器。
http://localhost/command/peixun/magicquote/2.php
<?php
require_once('Public/CommandLine.php');
$isget = ($_SERVER['REQUEST_METHOD'] == 'GET') ? 1 : 0;
if ($isget) {
$html = <<<longs
<html>
<body>
<form method="post">
请输入字符:<input type="text" name="name1" value=''>
</form>
</body>
</html>
longs;
echo $html;
} else {
echo $_POST['name1'];
}
然后修改magic_quotes_gpc = Off,并重启apache服务器,再次测试程序。
最后要说明的是,这些都是学习概念用的,实际的大部分应用中,都将魔术引用关闭,手动的进行转换。
分享到:
相关推荐
#### 一、PHP基础 **1. 设置工作环境(LESSON1)** - **知识点概述:** 本章节将介绍如何搭建PHP开发环境,包括安装服务器软件(如Apache或Nginx)、PHP解释器以及配置基本的开发工具。 - **详细知识点:** - **...
【PHP基础知识点详解】 PHP是一种广泛使用的开源脚本语言,主要应用于Web开发,可以嵌入HTML中。以下是对PPT课件中提到的PHP基础知识的详细解读: 1. **PHP标记**: PHP代码通常使用以下四种方式标记: - `<?php...
### PHP基础知识点详解 #### 一、PHP简介与特点 **PHP**(Hypertext Preprocessor,即“超文本预处理器”),是一种广泛使用的开源通用脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法吸收了C语言、Java和...
1. **PHP基础知识**: - PHP的数据类型:了解如何声明和使用字符串、整型、浮点型、布尔型、数组、对象、NULL以及资源。 - 变量作用域:理解局部变量、全局变量和静态变量的区别及其在代码中的应用。 - PHP运算符...
总的来说,PHP开发基础涵盖了从变量操作到面向对象编程的多个核心概念,对于初学者来说,掌握这些基础知识是成为合格的PHP开发者的第一步。通过深入学习和实践,可以进一步提升在Web开发中的技能和效率。
1. **PHP基础** - 数据类型:了解PHP中的基本数据类型,如整型、浮点型、字符串、布尔型、数组、对象、NULL和资源。 - 变量:理解变量的声明、赋值和作用域(全局、局部、静态)。 - 运算符:掌握算术、比较、...
以上就是PHP基础知识的概述。在深入学习过程中,你还会接触到更多的高级特性,如面向对象编程、命名空间、类和对象、魔术方法、 Traits、错误处理策略以及性能优化等。通过不断实践和学习,你将能够熟练掌握PHP,为...
腾讯推出的PHP基础培训教程旨在帮助初学者或开发者系统地掌握PHP编程基础。下面将详细阐述教程中的关键知识点: 1. **变量与常量**: - 变量:在PHP中,变量以$开头,例如`$val`。变量可以是全局、局部或静态的。...
"PHP基础知识点总结" PHP 是一种服务器端的 html 脚本编程语言,具有简单、面向对象、解释型、健壮、安全、性能高等特点。它广泛用于 Open source 的 web 开发,并且可以嵌入到 html 中。 PHP 的用法接近 C、Java ...
首先,让我们深入探讨PHP的基础知识,这是任何PHP面试的起点。PHP是一种服务器端脚本语言,主要应用于Web开发,可以嵌入到HTML中使用。其语法简洁,功能强大,是初学者入门的理想选择。了解PHP的数据类型(如字符串...
腾讯网的PHP开发基础培训涵盖了PHP编程语言的关键概念和语法,...通过以上介绍,我们可以看到腾讯网的PHP开发基础培训课程旨在为初学者提供全面的PHP语言基础知识,涵盖从基本的变量和函数到面向对象编程的核心概念。
总之,《细说PHP第二版》是一本全面覆盖PHP基础知识和进阶概念的教程,无论你是刚接触PHP的新手还是希望巩固基础的学习者,都能从中受益匪浅。书中的实例和详细解释将帮助你轻松理解PHP编程,为后续的PHP开发工作...
总的来说,这份资料是PHP初学者和准备面试者的重要参考资料,它强化了对PHP基础知识的理解,同时为实际工作中的问题解决提供了基础。通过深入学习和实践这些题目,面试者将能更自信地面对PHP程序员的面试挑战。
中文手册详尽地介绍了这些基础知识,帮助初学者快速入门。 **2. 数据类型** PHP5引入了对象和引用的概念,以及弱类型的特性。除了传统的字符串、整型、浮点型、布尔型和数组外,还增加了对象、资源和NULL等类型。...
1. **判断函数是否存在**: 在PHP中,我们常常需要确保要调用的函数确实已经被定义。为此,可以使用`function_exists`函数来检查。例如: ```php function myFunction() {} if (function_exists('myFunction')) ...
1. **PHP基础**: - 数据类型:理解PHP的内置数据类型,如字符串、整型、浮点型、布尔型、数组、对象、NULL和资源。 - 变量与作用域:了解变量的声明、赋值、生命周期以及不同作用域(global、local、static、$...
1. **PHP基础** - 变量:理解PHP变量的声明、类型(如int, string, array, object等)及其动态类型特性。 - 运算符:包括算术、比较、逻辑和赋值运算符的使用。 - 流程控制:掌握if...else, switch...case, for, ...
#### 二、PHP基础知识 - **数学函数**: 包括但不限于`abs()`, `ceil()`, `floor()`, `round()`等。 - **字符串函数**: 如`strlen()`, `str_replace()`, `substr()`等。 - **常用函数总结**: 涵盖180多个常用函数,...
2. PHP基础语法:涵盖变量、数据类型、运算符、流程控制(循环和条件语句)、函数等基础知识。 3. PHP数组和字符串操作:数组的创建、遍历、操作等;字符串的处理方法,如连接、分割、替换等。 4. PHP面向对象编程:...