本文為大家帶來一篇 php檢測html標籤是否閉合、沒有則修復。希望對您的學習研究php有幫助,具體參考描述如下:
html標籤閉合檢測與修復,說的有點大 , 並沒有考慮的很完整,沒有使用正規表示式, 適用於html檔案中只有開始標籤沒有結束標籤, 是有結束標籤沒有開始標籤的情況。標籤閉合的位置需要根據需求調整
<?php
$str = '
">
content
content full
this is content
this is content
this is cont
this is content
this is content';
$str_len = strlen($str);
//記錄起始標籤
$pre_data = array();
//記錄起始標籤位置
$pre_pos = array();
$last_data = array();
$error_data = array();
$error_pos = array();
$i = 0;
//標記為 < 開始
$start_flag = false;
while( $i < $str_len )
if(!$space_flag)
$i++;
}$pre_data = $_tmp_str;
$pre_pos = $i;
} else if ($str[$i]=="
$last_data = $_tmp_str;
//檢視開始標籤的上乙個值
if(count($pre_data)>0) else
} else
}else if ($str[$i]=="
}$i++;
}else if($str[$i]=='/' && $str[$i+1]=='>')
}else if($str[$i]=="/" && $str[$i+1]=="*") else
$i++;
}}else if($str[$i]=="'")
$i++;
} else if($str[$i]=='"')
$i++;
} else
}//確定起始標籤的位置
function confirm_pre_pos($str, $pre_pos)
$j++;}}
else if($str[$j] == "'")
$j++;}}
else if($str[$j]==">")
$j++;
}break;
} else
}return $j;
}//確定起始標籤的位置
function confirm_err_pos($str, $err_pos)
$j--;}}
else if($str[$j] == "'")
$j--;}}
else if($str[$j]==">")
else
}return $j;
}//獲取陣列的倒數第num個值
function getlastnode(array $arr, $num) else
}//整理資料, 主要是向後看, 進一步進行檢查
function sort_data(&$pre_data, &$pre_pos, &$error_data, &$error_pos)}}
//刪除起始標籤相應的值
foreach($rem_key_array as $_item)
//刪除結束標籤相應的值
foreach($rem_i_array as $_item)
}//整理資料, 閉合標籤
function modify_data($str, $pre_data, $pre_pos, $error_data, $error_pos)
}$data = insert_data($str, $value, $error_pos[$key]+$_tmp_move_count, false);
$str = $data['str'];
$move_log[$data['pos']] = $data['move_count'];
}//只有起始標籤的資料
foreach ($pre_data as $key => $value)
}$data = insert_data($str, $value, $pre_pos[$key]+$_tmp_move_count, true);
$str = $data['str'];
$move_log[$data['pos']] = $data['move_count'];
}return $str;
}//插入資料, $type 表示插入資料的方式
function insert_data($str, $insert_data, $pos, $type) else
$str = $pre_str.$mid_str.$end_str;
return array('str'=>$str, 'pos'=>$pos, 'move_count'=>$move_count);
}sort_data($pre_data, $pre_pos, $error_data, $error_pos);
$new_str = modify_data($str, $pre_data, $pre_pos, $error_data, $error_pos);
echo $new_str;
// print_r($pre_data);
// print_r($pre_pos);
// print_r($error_data);
// print_r($error_pos);
// echo strlen($str);
// foreach($pre_pos as $value)
// echo "\n";
// }
// foreach($error_pos as $value)
// echo "\n";
// }
?>
網際網路+時代,時刻要保持學習,攜手千鋒
php,dream it possible。
更多php相關技術請搜尋千鋒php,做真實的自己,用良心做教育。
php檢測html標籤是否閉合 沒有則修復
本文為大家帶來一篇 php檢測html標籤是否閉合 沒有則修復。希望對您的學習研究php有幫助,具體參考描述如下 html標籤閉合檢測與修復,說的有點大 並沒有考慮的很完整,沒有使用正規表示式,適用於html檔案中只有開始標籤沒有結束標籤,是有結束標籤沒有開始標籤的情況。標籤閉合的位置需要根據需求調...
java檢測html是否閉合
class tagslist public tagslist public void add string str public string get int index 為了提高效率,只將其置為null public boolean remove string str return false p...
php閉合標籤
php 閉合標籤 php閉合標籤 在php中對php的分析器是可選的。但是,如果使用閉合標籤,任何由開發者,使用者,或者ftp應用程式插入閉合標籤後面的空格都有可能會引起多餘的輸出 php錯誤 之後的輸出無法顯示 空白頁。因此,所有的php檔案應該省略這個php閉合標籤,並插入一段注釋來標明這是檔案...