首页 开发编程 正文

php源码怎么试(eval函数用法总结)

eval定义和用法eval()函数把字符串按照PHP代码来计算。该字符串必须是合法的PHP代码,如果没有在代码字符串中调用return语句,返回语句会立即终止对字符串的计算。该函数对于在数据库文本字段中供日后计算而进行的代码存储很有用。参数code_str为欲处理的字符串。值得注意的是待处理的字符串要符合PHP的字符串格式,使用本函式...

php源码怎么试,eval函数用法总结?

eval定义和用法

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

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

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

语法

eval(phpcode)

参数 描述

phpcode 必需。规定要计算的 PHP 代码。

提示和注释

注释:返回语句会立即终止对字符串的计算。

注释:该函数对于在数据库文本字段中供日后计算而进行的代码存储很有用。

例子

$string

$time

$str

echo$str

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'))

{ // www.jbxue.com

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 程序结束。

如何判断PHP源码是否存在SQL注入漏洞?

判断是否存在SQL注入首先找到可能的注入点;比如常见的get,post,甚至cookie,传递参数到PHP,然后参数被拼接到SQL中,如果后端接收参数后没有进行验证过滤,就很可能会出现注入。比如xxx.com?id=321,id就很可能是注入点。

说白了就是不要相信用户输入,对用户可控的参数进行严格校验。注意是严格校验!简单的去空格,或者是特殊字符替换很容易绕过。

如果已经有原码,可以进行代码审计,进行逐一排查。也可以搭建本地环境使用类似于sqlmap这样的自动化工具进行可以链接的检测。

个人理解仅供参考,如有偏颇望批评指正!

手机怎么能把网站的源码下下来php?

别人做好的网站,你是下载不下来别人的php源码的,除非别人给你打包好供你下载,才能下载。

否则你只能看到别人的前台代码,而下载不了后端服务的php代码。

php源码怎么搭建文件夹并显示出来?

我给你思路, 用glob()获取根目录文件,然后用is_dir()判断是否为文件,是的话在用glob(),不是的话,直接打印出来,一直循环下去

php代码运行无法在网页显示?

解决方法:

1、打开php.ini配置文件;

2、取消error_reporting的注释,将其设置为【error_reporting=E_ALL&~E_NOTICE】;

3、重启服务器即可显示。

本文转载自互联网,如有侵权,联系删除