HTML页面指定符号,使该符号内的内容当做PHP代码。
程序员文章站
2023-12-25 18:09:45
...
跳至
<?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); ?>