вторник, октября 03, 2006

Вопрос - ответ: Нужно мне выдрать со страницы данные которые в метатеге description.

Был задан вопрос с umaxforum'a от AlexeyPro:

Нужно мне выдрать со страницы данные которые в метатеге description.
Функция PHP get_meta_tags не катит. Для нее надо чтоб строго по стандарту теги были прописаны.
http://php.net/get_meta_tags есть пример с регуляркой но не на всех страницах срабатывает т.к. есть куча бля вариантов
Исходный код

<Meta content="Xanax" name="description">
<Meta content="Xanax" name="description">
<Meta name="description" content="Xanax">
<Meta name="description" content="Xanax">

как видно name и content могут менятся местами и данные могут быть в кавычках так и без них.

Ответ:
$subj = <<<HTML
<Meta content="Xanax" name="description">
<Meta content="Xanax" name="description">
<Meta name="description" content="Xanax">
<Meta name="description" content="Xanax">
HTML;

if (preg_match_all('/]+)>/i', $subj, $match)){
$data = array();
foreach ($match[1] as $k=>$m) {
if (preg_match_all('/(\w+)=([^\s]+)/i', $m, $mm)){
array_shift($mm);
foreach ($mm[0] as $kk => $m) {
$data[$k][$m] = trim($mm[1][$kk], '"\'');
}
}
}
print_r($data);
}


Полученная переменная - это массив с аттрибутами тега meta:


Array
(
[0] => Array
(
[content] => Xanax
[name] => description
)

[1] => Array
(
[content] => Xanax
[name] => description
)

[2] => Array
(
[name] => description
[content] => Xanax
)

[3] => Array
(
[name] => description
[content] => Xanax
)

)

суббота, сентября 23, 2006

ПоЕхаЛИ!!!

С богом :)