Мне требуется переписать мое существующее регулярное выражение для определения character set из META-тагов веб-страницы.
У меня есть две проверки - для одинарных и двойных кавчек:
preg_match( '@<meta\s+http-equiv="Content-Type"\s+content="([\w/]+)(;\s+charset=([^\s"]+))?@i', $content, $matches );
if (!empty($matches[3])) {
$encoding = strtolower(trim(str_replace(";","",$matches[3])));
}
else {
preg_match( '@<meta\s+http-equiv=\'Content-Type\'\s+content=\'([\w/]+)(;\s+charset=([^\s\']+))?@i', $content, $matches );
$encoding = strtolower(trim(str_replace(";","",$matches[3])));
}
Проблема в том, что порядок следования параметров на своих страницах ($content) веб-мастера меняют как захочется. И в случае, например:
"<meta content="text/html; charset=windows-1251" http-equiv="Content-Type">"
вышеуказанная регулярка не работает.
Мне нужно:
Переписать эту регулярку таким образом чтобы обеспечить максимальную универсальность при таких переменах мест параметров в мета-теге. Также важна скорость её работы, т.к. код работает в весьма высоко нагруженном процессе.
Имею на это дело бюджета долларов 10 (WebMoney?) и дня два времени.
Люди добрые, помогите кто чем может (с) :)