Heim  >  Artikel  >  php教程  >  HTML页面指定符号,使该符号内的内容当做PHP代码。

HTML页面指定符号,使该符号内的内容当做PHP代码。

PHP中文网
PHP中文网Original
2016-05-25 17:09:17931Durchsuche

跳至

<?php
	
   /** 
    * 把一个指定的HTML页面显示。如果有页面中有放PHP代码的地方就执行PHP代码。
    * 放置PHP代码的地方都有$fuhao1和$fuhao2
   * @param unknown_type $filename
   * @param unknown_type $fuhao1
   * @param unknown_type $fuhao2
   */
  function display2($filename,$fuhao1,$fuhao2,$xiandingarr){
  	$filestr=file_get_contents($filename);
  	$ennable=false;
  	$tmpstr=null;
  	$isxianding=false;
  	$biaojis=xiandingByArr($filestr, $xiandingarr);
    for ($i=0;$i<strlen($filestr);$i++){
    	$j=0;
    	foreach ($biaojis as $biaoji)
    	 {
    	 	 if($biaoji[0]=$i){
    	        $j=1;
    	 	 	$isxianding=true;
    	 	 }
    	 }
    	 if($j==0){
    	 	$isxianding=false;
    	 }
    	 if($isxianding){
    	 	$ennable=false;
    	 }
    	else if($filestr[$i]==$fuhao1){
    		$ennable=true;
    	}
    	else if($filestr[$i]==$fuhao2){
    		if($ennable){
    		  	
    			$functioncode=substr($tmpstr, 1);
    			$functionname=create_function("", "$functioncode;");
    			$functionname();
    			$ennable=false;
    			$tmpstr=null;
    			continue;
    		}
    	}
    	
    	if($ennable){
    		$tmpstr.=$filestr[$i];
    	}
    	else{
    		echo $filestr[$i];
    	}
    }
    echo $tmpstr;
  }
 /**
  * 过滤指定的字符。使之不当做PHP代码
  * @param unknown_type $str
  * @param unknown_type $xianding1
  * @param unknown_type $xianding2
  * @return multitype:
  */
function xianding($str,$xianding1,$xianding2){
	$pos=-1;
	$resultarr=array();
	while(!(($pos=strpos($str, $xianding1,$pos+1))===false)){
		$tmppos=$pos;
		if(!(($pos=strpos($str, $xianding2,$pos+1))===false)){
			echo $pos;
			$tmparr=array($tmppos,$pos+strlen($xianding2));
			array_push($resultarr, $tmparr);
		}
		else{
			break;
		}
	}
	return $resultarr;
}
/**
 * 根据数组中的数据来过滤,使之不当做PHP代码
 * @param unknown_type $str
 * @param unknown_type $xiandingarr
 * @return multitype:
 */
function xiandingByArr($str,$xiandingarr){
	$pos=-1;
	$resultarr=array();
 foreach ($xiandingarr as $xian){
 	while(!(($pos=strpos($str, $xian[0],$pos+1))===false)){
 		$tmppos=$pos;
 		if(!(($pos=strpos($str, $xian[1],$pos+1))===false)){
 			$tmparr=array($tmppos,$pos+strlen($xian[1]));
 			array_push($resultarr, $tmparr);
 		}
 		else{
 			break;
 		}
 	}
 }
	return $resultarr;
}
$filestr=file_get_contents("include.html");
$xianarr=array(
		 array(""), array("") ); print_r(xiandingByArr($filestr, $xianarr)); display2("include.html", "{", "}",$xianarr); ?>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn