php檢測html標籤是否閉合 沒有則修復

2021-08-02 03:20:10 字數 3188 閱讀 3228

本文為大家帶來一篇 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閉合標籤,並插入一段注釋來標明這是檔案...