HTML页面指定符号,使该符号内的内容当做PHP代码
其实这个看似没什么用,因为可以直接在PHP页面的?PHP ?标记内写PHP代码。但是这样做可以把HTML和PHP尽量分开。
其实这个看似没什么用,因为可以直接在PHP页面的<?PHP ?>标记内写PHP代码。但是这样做可以把HTML和PHP尽量分开。
<?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&&$biaoji[1]>=$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("<script>","</script>"),
array("<style>","</style>")
);
print_r(xiandingByArr($filestr, $xianarr));
display2("include.html", "{", "}",$xianarr);
?>
精彩图集
精彩文章






