Файл: 4mast/profmas.ru/modules/works/valid.php
Строк: 75
<?
require_once('../../includes/Headers.php');
require_once('../../includes/PDO_func.php');
H ('XML валидатор', 'Сервисы | XML валидатор');
if(substr_count($_SERVER['HTTP_USER_AGENT'], 'MSIE'))
echo '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<body>';
if(!$_GET['source'])
{
switch($_GET['go'])
{
default:
print '<div class="list1">XML Валидатор<br/>
<form action="?" method="get">
Адрес (без http://)<br/>
<input type="text" name="source" value=""/><br/>
<input type="submit" value="Проверить"/>
</form>
<a href="?go=faq">FAQ</a></div>';
break;
case 'faq':
print '<div class="list1">
-С помощью данного сервиса вы можете проверить свои страницы на соответствие XML стандартам.<br/>
-WML и xHTML страницы бязательно должны соответствовать стандартам XML. HTML не так требователен, однако лишним такое соответствие не будет.<br/>
<a href="/modules/works/valid.php">Назад</a></div>';
break;
}
}
else
{
$_GET['source'] = 'http://'.$_GET['source'];
$source = rawurldecode(trim($_GET['source']));
function validator($current)
{
global $time, $time, $lng;
$data = @fopen($current,'r');
if(!$data)
{return '<div class="error">Не удалось проверить указанный адрес</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="list1">Error [Line '.$line.', Column '.$column.']: '.$err.'</div>'.code($fl,$line);
}
else
{
xml_parser_free($xml_parser);
return '<div class="acess">Поздравляем! Документ Соответствует XML Правилам</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 = preg_split("r",url_highlight(str_replace("n",null,$fl)));}
else
{$arr = preg_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];}
}
}
print validator($source);
}
require_once('../../includes/Footers.php');
?>