Проверка незакрытых тегов

12
gtauter
На сайте с 08.06.2008
Offline
131
#11

Интересная тема, кстати. На хабре обсуждали, может натолкнет на какие мысли. :)

Там, кстати, и линки на программы есть, но 100% работающего простого пхп-скрипта, с массовой проверкой я не видел. Хотя, может, плохо искал. :)

С уважением, Евгений. Моя визитка (gtauter.ru). Привет из "Теслы" :)
whites
На сайте с 28.10.2009
Offline
21
#12

Наваял за пять минут:


<?php

$fl = file_get_contents("http://www.whitesystem.ru/");


preg_match_all("#<(.*?)>#ism", $fl, $res);
$all = $res[1]; foreach($all as $arg => $val) list($all[$arg]) = explode(" ", $val);

$tmp = array();
foreach($all as $tag) if(is_int($tmp[$tag])) $tmp[$tag]++; else $tmp[$tag] = 1;
$all = $tmp;


preg_match_all("#</(.*?)>#ism", $fl, $res);
$closed = $res[1]; foreach($closed as $arg => $val) list($closed[$arg]) = explode(" ", $val);

$tmp = array();
foreach($closed as $tag) if(is_int($tmp[$tag])) $tmp[$tag]++; else $tmp[$tag] = 1;
$closed = $tmp;


foreach($all as $tag => $count)
{
if(isset($closed[$tag])) $all[$tag] = $count-$closed[$tag];

if(strpos("Oo".$tag, "/")) unset($all[$tag]);

if($all[$tag] == 0) unset($all[$tag]);
}


print_r($all);

?>

В результате получили незакрытые теги:


Array
(
[!DOCTYPE] => 1
[meta] => 5
[link] => 1

Впринципе покатит для определенных целей. ;)

whites добавил 13.12.2009 в 00:00

Если добавить массивчик исключений, то вообще гуд будет. :) Еще array_map("trim", ...) не помешает.

x-Strife Game Team
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий