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

定義和用法

eval() 函數(shù)把字符串按照 PHP 代碼來(lái)計(jì)算,該字符串必須是合法的 PHP 代碼,且必須以分號(hào)結(jié)尾,如果沒(méi)有在代碼字符串中調(diào)用 return 語(yǔ)句,則返回 NULL,如果代碼中存在解析錯(cuò)誤,則 eval() 函數(shù)返回 false.

語(yǔ)法:eval(phpcode) 

參數(shù) 描述

phpcode 必需,規(guī)定要計(jì)算的 PHP 代碼.

提示和注釋

注釋:返回語(yǔ)句會(huì)立即終止對(duì)字符串的計(jì)算.

注釋:該函數(shù)對(duì)于在數(shù)據(jù)庫(kù)文本字段中供日后計(jì)算而進(jìn)行的代碼存儲(chǔ)很有用.

PHP實(shí)例代碼如下:

  1. <?php  
  2. $string = "beautiful";  
  3. $time = "winter";  
  4.    
  5. $str = 'This is a $string $time morning!';  
  6. echo $str"<br />";  
  7.    
  8. eval("$str = "$str";");  
  9. echo $str;  
  10. ?>     
  11. //輸出: 
  12. //This is a $string $time morning! 
  13. //This is a beautiful winter morning! 

eval() 函數(shù)在CodeIgniter框架里也有用到,在 /system/database/DB.php 文件中,根據(jù)系統(tǒng)的配置動(dòng)態(tài)的定義了一個(gè)類 CI_DB,具體代碼片段如下:

  1. if ( ! isset($active_record) OR $active_record == TRUE)  
  2.     {  
  3.         require_once(BASEPATH.'database/DB_active_rec.php');  
  4.    
  5.         if ( ! class_exists('CI_DB'))  
  6.         {  
  7.             eval('class CI_DB extends CI_DB_active_record { }');  
  8.         }  
  9.     }  
  10.     else 
  11.     {  
  12.         if ( ! class_exists('CI_DB'))  
  13.         {  
  14.             eval('class CI_DB extends CI_DB_driver { }');  
  15.         }  
  16.     }  
  17.    
  18.     require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver.php');  
  19.    
  20.     // Instantiate the DB adapter,phpfensi.com
  21.     $driver = 'CI_DB_'.$params['dbdriver'].'_driver';  
  22.     $DB = new $driver($params);  

本函式可將字符串之中的變量值代入,通常用在處理數(shù)據(jù)庫(kù)的數(shù)據(jù)上,參數(shù) code_str 為欲處理的字符串,值得注意的是待處理的字符串要符合 PHP 的字符串格式,同時(shí)在結(jié)尾處要有分號(hào),使用本函式處理后的字符串會(huì)沿續(xù)到 PHP 程序結(jié)束.

轉(zhuǎn)載請(qǐng)注明來(lái)源:php eval函數(shù)用法總結(jié)

  哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無(wú)需額外費(fèi)用,即可穩(wěn)步提升排名至首頁(yè)。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)。