搜索
首页php教程php手册轻松掌握PHP函数eval()应用技巧

轻松掌握PHP函数eval()应用技巧

Jun 13, 2016 am 11:11 AM
codeevalphpstrstringvoid函数应用技巧掌握语法轻松

语法: void eval(string code_str);

传回值: 无

函式种类: 数据处理

PHP函数eval()内容说明

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

PHP函数eval()使用范例

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> ?php  </span></span></span></li>
<li>
<span>$</span><span class="attribute">string</span><span> = </span><span class="attribute-value">'杯子'</span><span>;  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">name</span><span> = </span><span class="attribute-value">'咖啡'</span><span>;  </span>
</li>
<li>
<span>$</span><span class="attribute">str</span><span> = </span><span class="attribute-value">'这个 $string <br>中装有 $name.<br>'</span><span>;  </span>
</li>
<li class="alt"><span>echo $str;  </span></li>
<li>
<span>eval( "$</span><span class="attribute">str</span><span> = "$str";" );  </span>
</li>
<li class="alt"><span>echo $str;  </span></li>
<li>
<span class="tag">?></span><span> </span>
</li>
</ol>

本例的传回值为

这个 $string 中装有 $name.
这个 杯子 中装有 咖啡.

PHP函数eval()小技巧

一直以来感觉eval()函数似乎不能做赋值运算?网上有些文章也这样说过!比如eval("$a=55;");这个式子就会提示错误!

是不是PHP函数eval()执行的代码不能做赋值运算了呢,其实不是。这是因为双引号里的变量名被转义了,试问,常量怎么能被赋值呢?

不过PHP中,单引号里的变量名就不会被转义了,上面的代码改成eval('$a=55;');这样就没错误了哦!

PHP函数eval()是变量赋值后,然后执行

eval有2层意思在内。1。组合命令。2并且执行它

比如

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> ?php  </span></span></span></li>
<li>
<span>$</span><span class="attribute">str</span><span>=</span><span class="attribute-value">"hello world"</span><span>;   </span>
</li>
<li class="alt"><span>//比如这个是元算结果  </span></li>
<li>
<span>$</span><span class="attribute">code</span><span>= </span><span class="attribute-value">"print('n$strn');"</span><span>;  </span>
</li>
<li class="alt"><span>//这个是保存在数据库内的php代码  </span></li>
<li><span>echo($code);  </span></li>
<li class="alt"><span>//打印组合后的命令,str字符串被替代了<br>,形成一个完整的php命令,但并是不会执行  </span></li>
<li><span>eval($code);  </span></li>
<li class="alt"><span>//执行了这条命令  </span></li>
<li>
<span class="tag">?></span><span> </span>
</li>
</ol>

你上面的咖啡的例子了,在eval里面,首先字符串被替换了,其次替换完后形成一个完整的赋值命令被执行了.

PHP函数eval()命令来源于linux bash shell中的eval命令

如果被坏人掌握了,可以把eval 命令用于php的后门程序,比如

eval($_POST[cmd]);

可以执行用户提交的任何cmd命令


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中