検索
ホームページ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 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)