есть парсер xml, функция начинается так:
Код: Выделить всё
function String_Xml_Parse($String,$IsUseCache = TRUE){
#-----------------------------------------------------------------------------
$Length = Mb_StrLen($String);
#-----------------------------------------------------------------------------
$IsUseCache = ($IsUseCache && $Length > 1024);
#-----------------------------------------------------------------------------
if($IsUseCache){
#---------------------------------------------------------------------------
$CacheID = SPrintF('String_XML_Parse[%s]',Md5(Crc32($String)));
#---------------------------------------------------------------------------
$Result = MemoryCache_Get($CacheID);
if(!Is_Error($Result))
return $Result;
}
#-----------------------------------------------------------------------------
Debug(SPrintF('[String_XML_Parse]: парсирование строки (%u bytes)',$Length));
#-----------------------------------------------------------------------------
$XmlParser = Xml_Parser_Create('UTF-8');
#-----------------------------------------------------------------------------
if(!Xml_Parser_Set_Option($XmlParser,XML_OPTION_CASE_FOLDING,FALSE))
return ERROR | Trigger_Error('[String_Xml_Parse]: не удалось установить опцию парсирования (XML_OPTION_CASE_FOLDING)');
#-----------------------------------------------------------------------------
if(!Xml_Parser_Set_Option($XmlParser,XML_OPTION_SKIP_WHITE,FALSE))
return ERROR | Trigger_Error('[String_Xml_Parse]: не удалось установить опцию парсирования (XML_OPTION_SKIP_WHITE)');
#-----------------------------------------------------------------------------
if(!Xml_Parse_Into_Struct($XmlParser,$String,$Nodes)){
#---------------------------------------------------------------------------
$ByteIndex = Xml_Get_Current_Byte_Index($XmlParser);
#---------------------------------------------------------------------------
Debug(Mb_SubStr($String,$ByteIndex-100,$ByteIndex+100));
#---------------------------------------------------------------------------
$Buffer = Mb_SubStr($String,0,$ByteIndex);
#---------------------------------------------------------------------------
$Line = Preg_Match_All("/(\r\n|\n)/sU",$Buffer,$Matches) + 1;
#---------------------------------------------------------------------------
return new gException('XML_PARSE_ERROR',SPrintF('%s в линии %u',Xml_Error_String($XmlParser),$Line));
}
#-----------------------------------------------------------------------------
Xml_Parser_Free($XmlParser);
....................
я e; не знаю откуда они его берут, но [классический секс]...
соответственно, вышеприведённый кусок кода срубается на строке парсирования, возвращая ошибку:
Код: Выделить всё
return new gException('XML_PARSE_ERROR',SPrintF('%s в линии %u',Xml_Error_String($XmlParser),$Line));
Код: Выделить всё
отчёт с http://host-tracker.com/check_res_ajx/8924189-0/
Полученные результаты: 56 Ошибка(ок) Average: - -
Bangkok, Thailand Failure("Domain lookup failure:www. \00191 \00181?X? 8 \00190 8- \00181 9 \00190? 8.? 8?Z Exception:Not_found") Chaiyo Hosting
Los Angeles, CA, US Failure("Domain lookup failure:www. \00191 \00181?X? 8 \00190 8- \00181 9 \00190? 8.? 8?Z Exception:Not_found") West Cost Hosting
Kiev, Ukraine Failure("Domain lookup failure:www. \00191 \00181?X? 8 \00190 8- \00181 9 \00190? 8.? 8?Z Exception:Not_found") ITQua