首頁  >  文章  >  後端開發  >  php eval函數用法總結

php eval函數用法總結

高洛峰
高洛峰原創
2016-11-29 15:33:041410瀏覽

這個函數我想很多朋友都知道,黑客用得最多的一句了,可以解析php 代碼並且運行,eval是函數不可在php中禁止,以前我就以為可以在php.ini禁止此函數,結果失敗了.

定義和用法

eval() 函數把字串按照PHP 程式碼來計算,該字串必須是合法的PHP 程式碼,且必須以分號結尾,如果沒有在程式碼字串中呼叫return 語句,則呼叫傳回NULL,如果程式碼中存在解析錯誤,則eval() 函數回傳false.

語法:eval(phpcode) 

參數描述

phpcode 必要,規定要計算的PHP 程式碼.

提示和註解:傳回語句會立即終止字串的計算.

註解:函數對於在資料庫文字欄位中供日後計算而進行的程式碼儲存很有用.

PHP實例程式碼如下:

$ string = "beautiful";  

$time = "winter";  

   

$str =  />";  

   

eval("$str = "$str";");  

echo $str;  

?>     

 

//This is a beautiful winter morning! 

eval() 函數在CodeIgniter框架裡也有用到,在/system/database/DB.php 檔案中,根據系統的設定動態的定義了一個類別CI_DB,具體程式碼片段如下:

if ( ! isset($active_record) OR $active_record == TRUE)  

    {  

)   

        if ( ! class_exists('CI_DB'))  

        {

            eval('class CI_DB extends CI_DB_active_record { }');  

    else 

    {  

        if 

            eval('class CI_DB extends CI_DB_driver { }');  

        }  

    }  

   .'/'.$params['dbdriver'].'_driver.php ');  

   

    // Instantiate the DB adapter,phpfensi.com

       $DB =​​ new $driver($params) ;  

本函數可將字串之中的變數值代入,通常用在處理資料庫的資料上,參數code_str 為欲處理的字串,值得注意的是待處理的字串要符合PHP 的字串格式,同時在結尾處要有分號,使用本函數處理後的字串會沿續到PHP 程式結束.

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn