php eval函数用法总结

2015-01-24信息快讯网

这个函数我想很多朋友都知道,黑客用得最多的一句了,可以解析php 代码并且运行哦,eval是函数不可在php中禁止,以前我就以为可以在php.ini禁止此函数,结果失败了

eval定义和用法

eval() 函数把字符串按照 PHP 代码来计算。

该字符串必须是合法的 PHP 代码,且必须以分号结尾。

如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval() 函数返回 false。

语法
eval(phpcode)
  
参数 描述
phpcode 必需。规定要计算的 PHP 代码。

提示和注释
注释:返回语句会立即终止对字符串的计算。
注释:该函数对于在数据库文本字段中供日后计算而进行的代码存储很有用。
例子

 
<?php 
$string = "beautiful"; 
$time = "winter"; 
$str = 'This is a $string $time morning!'; 
echo $str. "<br />"; 
eval("$str = "$str";"); 
echo $str; 
?>    

输出:
代码如下复制代码 This is a $string $time morning!
This is a beautiful winter morning!
eval() 函数在CodeIgniter框架里也有用到。在 /system/database/DB.php 文件中,根据系统的配置动态的定义了一个类 CI_DB,具体代码片段如下:?
 
if ( ! isset($active_record) OR $active_record == TRUE) 
{ 
require_once(BASEPATH.'database/DB_active_rec.php'); 
if ( ! class_exists('CI_DB')) 
{ 
eval('class CI_DB extends CI_DB_active_record { }'); 
} 
} 
else 
{ 
if ( ! class_exists('CI_DB')) 
{ 
eval('class CI_DB extends CI_DB_driver { }'); 
} 
} 
require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver.php'); 
// Instantiate the DB adapter 
$driver = 'CI_DB_'.$params['dbdriver'].'_driver'; 
$DB = new $driver($params); 
  

本函式可将字符串之中的变量值代入,通常用在处理数据库的数据上。参数 code_str 为欲处理的字符串。值得注意的是待处理的字符串要符合 PHP 的字符串格式,同时在结尾处要有分号。使用本函式处理后的字符串会沿续到 PHP 程序结束。

在wamp集成环境下升级php版本(实现方法)
php5.3 注意事项说明
file_get_contents("php://input", "r")实例介绍
如何给phpcms v9增加类似于phpcms 2008中的关键词表
解析php做推送服务端实现ios消息推送
php小经验:解析preg_match与preg_match_all 函数
解析php session_set_save_handler 函数的用法(mysql)
使用PHP获取当前url路径的函数以及服务器变量
如何使用PHP实现javascript的escape和unescape函数
解析php中的escape函数
php setcookie(name, value, expires, path, domain, secure) 参数详解
关于使用key/value数据库redis和TTSERVER的心得体会
php 去除html标记--strip_tags与htmlspecialchars的区别详解
探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释
php eval函数用法 PHP中eval()函数小技巧
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
php图片加中文水印实现代码分享
php中防止恶意刷新页面的代码小结
利用PHP生成静态HTML文档的原理
PHP学习笔记 IIS7下安装配置php环境
PHP去掉从word直接粘贴过来的没有用格式的函数
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
php模拟js函数unescape的函数代码
php页面缓存ob系列函数介绍
php模板函数 正则实现代码
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
PHP中空字符串介绍0、null、empty和false之间的关系
PHP中全局变量global和$GLOBALS[]的区别分析
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()'d code error
©2014-2024 dbsqp.com