File size: 3.38Kb
<?
// XML Валидатор
//
// Gvalidator
//
// Версия: 0.1
// Обновления Ищите Здеся: http://wapinet.ru/script/
// Автор: Gemorroj
//
// Номера кошельков. Надеюсь понятно для чего =)
// WMR 167963845445
// WMZ 225757696726
include"header.php";
if(substr_count($_SERVER['HTTP_USER_AGENT'], 'MSIE'))
{header('Content-type: text/html; charset=utf-8');}
if(!$_GET['source'])
{
switch($_GET['go'])
{
default:
print '<div class="w2">XML Валидатор<br/></div>
<div class="input">
<form action="?" method="get">
<div>
Адрес<br/>
<input type="text" name="source" value="http://"/><br/>
<input type="submit" value="Проверить"/>
</div>
</form>
</div>
<div class="border">
<a href="?go=faq">FAQ</a><br/>
</div>';
break;
case 'faq':
print '<div>
-С помощью данного сервиса вы можете проверить свои страницы на соответствие XML стандартам.<br/>
-WML и xHTML страницы бязательно должны соответствовать стандартам XML. HTML не так требователен, однако лишним такое соответствие не будет.<br/>
</div>';
break;
}
}
else
{
$source = rawurldecode(trim($_GET['source']));
if(ereg("^(http:\/\/)+[a-zA-Z_0-9/.&=?-]+$",$source))
{
function validator($current)
{
global $lng;
$data = @fopen($current,'r');
if(!$data)
{return '<div class="red">Не удалось проверить указанный адрес<br/></div>';}
ini_set('user_agent',$_SERVER['HTTP_USER_AGENT']);
$fl = file_get_contents($current);
$xml_parser = xml_parser_create();
if(!xml_parse($xml_parser, $fl, feof($data)))
{
$err = xml_error_string(xml_get_error_code($xml_parser));
$line = xml_get_current_line_number($xml_parser);
$column = xml_get_current_column_number($xml_parser);
xml_parser_free($xml_parser);
fclose($data);
return '<div class="red">Error [Line '.$line.', Column '.$column.']: '.$err.'<br/></div>'.code($fl,$line);
}
else
{
xml_parser_free($xml_parser);
return '<div class="red">Документ Соответствует XML Правилам<br/></div>'.code($fl,0);
}
}
function url_highlight($fl)
{return '<code>'.nl2br(preg_replace("~("|')[^<>]*("|')~iU",'<span style="color:#DD0000">\\0</span>',preg_replace("~<!--.*-->~iU",'<span style="color:#FF8000">\\0</span>',preg_replace("~(<[^\s!]*\s)([^<>]*)([/?]?>)~iU",'\\1<span style="color:#007700">\\2</span>\\3',preg_replace("~<[^<>]*>~iU",'<span style="color:#0000BB">\\0</span>',htmlspecialchars($fl,ENT_QUOTES)))))).'</code>';}
function code($fl,$line)
{
if(substr_count($fl,"\r") > 2)
{$arr = split("\r",url_highlight(str_replace("\n",null,$fl)));}
else
{$arr = split("\n",url_highlight($fl));}
$end = sizeof($arr);
for($i=0; $i<$end; $i++)
{
if($i == ($line-1))
{$page.= '<span class="fail_code"> '.($i+1).' </span> '.$arr[$i];}
else
{$page.= '<span class="true_code">'.($i+1).'</span> '.$arr[$i];}
}
return '<div class="code">'.$page.'</div>';
}
print validator($source);
}
else
{print '<div class="red">Введен не верный адрес<br/></div>';}
}
print '<div><a href="http://wapinet.ru">Powered by Gemorroj</a></div></body></html>';
include"../themes/$config_themes/foot.php";
?>