我有这个问题:如何检查每个HTML标签是否关闭?
用户可以添加一个HTML描述,它会显示在他的个人资料;当我显示用户列表时,我也希望显示这个描述。
因为它可能太长,我会限制它到一个固定的长度,但这样做,我可以打破HTML语法留下一些标签打开。
我该如何检查everthing是否正常,如果需要,关闭任何打开的标签?
我有这个问题:如何检查每个HTML标签是否关闭?
用户可以添加一个HTML描述,它会显示在他的个人资料;当我显示用户列表时,我也希望显示这个描述。
因为它可能太长,我会限制它到一个固定的长度,但这样做,我可以打破HTML语法留下一些标签打开。
我该如何检查everthing是否正常,如果需要,关闭任何打开的标签?
@ tampe125这不是我的代码,但它看起来像是有效的。
<?php /** * close all open xhtml tags at the end of the string
* * @param string $html
* @return string
* @author Milian <[email protected]>
*/function closetags($html) {
#put all opened tags into an array
preg_match_all('#<([a-z]+)(?: .*)?(?<![/|/ ])>#iU', $html, $result);
$openedtags = $result[1]; #put all closed tags into an array
preg_match_all('#</([a-z]+)>#iU', $html, $result);
$closedtags = $result[1];
$len_opened = count($openedtags);
# all tags are closed
if (count($closedtags) == $len_opened) {
return $html;
}
$openedtags = array_reverse($openedtags);
# close tags
for ($i=0; $i < $len_opened; $i++) {
if (!in_array($openedtags[$i], $closedtags)){
$html .= '</'.$openedtags[$i].'>';
} else {
unset($closedtags[array_search($openedtags[$i], $closedtags)]); }
} return $html;} ?>
这是一个简单的javascript验证程序,它执行基本标记检查。 XML validator
唯一的问题是,它会停在第一个错误,所以你需要解决一次一个问题。
谢谢,我会尝试尽快 – tampe125
不客气,它似乎会工作,虽然我还没有尝试过。我从http://www.kirupa.com/forum/showthread.php?343478获取答案 - Close-all-open-HTML-tag – Boundless
这是否解决了问题? – Boundless