Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывести значение тэга meta 
:(
    Опции темы
supercelt
Дата 4.12.2009, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Помогите пожалуйста с регуляркой, надо вывести что лежит в атрибуте content тэга meta description. Просто исхожный код везде разный. И как это учесть, могут быть разные варианты:
Код

<meta name="description" content="нужно дастать этот текст" />
<meta name='description' content='нужно дастать этот текст'>
<meta name='description' content='нужно дастать этот текст' />

PM   Вверх
Veve
Дата 4.12.2009, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 1.1.2005
Где: Латвия, Рига

Репутация: нет
Всего: 13



Код

<?php
ob_start();
?>
<meta name="description" content="нужно дастать этот текст1" />
<meta name='description' content='нужно дастать этот текст2'>
<meta name='description' content='нужно дастать этот текст3' />
<?php
$page = ob_get_contents();
ob_end_clean();

preg_match_all("/content=[\'\"](.*)[\'\"]/",$page, $matches);
print_r($matches[1]);
?>


Это сообщение отредактировал(а) Veve - 4.12.2009, 00:28
PM MAIL ICQ Skype MSN   Вверх
brother79
Дата 4.12.2009, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: нет
Всего: 6




Тогда уж лучше так:

Код

preg_match_all('/\<\s*meta\s+.*?content=[\'\"](.*?)[\'\"].*?\>/',$page, $matches);




--------------------
PM MAIL WWW   Вверх
MoLeX
Дата 4.12.2009, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



Код

<meta name="description" content="VPF:: - Форум программистов Vingrad" />
<meta name="keywords" content="VPF:: - Форум программистов Vingrad, программирование" />
<meta name="title" content="VPF:: - Форум программистов Vingrad" />

и что получат ваши регулярки?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
brother79
Дата 4.12.2009, 06:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: нет
Всего: 6



Цитата(MoLeX @  4.12.2009,  06:05 Найти цитируемый пост)
и что получат ваши регулярки? 


Была такая мысля smile Просто поленился. Но первый вар-нт и на твоём примере не рабочий smile Всмысле он не даст значение поля content.

Ну тогда как-то так:
    
Код

preg_match_all('/\<\s*meta.*?[\s'"]+name=[\'\"]description[\'\"].*?[\s'"]+content=[\'\"](.*?)[\'\"].*?\>/i s',$page, $matches);
preg_match_all('/\<\s*meta.*?[\s'"]+content=[\'\"](.*?)[\'\"].*?[\s'"]+name=[\'\"]description[\'\"].*?\>/i s',$page, $matches);


или в одну собрать:

Код

preg_match_all('/\<\s*meta.*?[\s'"]+(name=[\'\"]description[\'\"].*?[\s'"]+content=[\'\"](.*?)|content=[\'\"](.*?)[\'\"].*?[\s'"]+name=[\'\"]description)[\'\"].*?\>/i s',$page, $matches);


Правда не тестировал, будет ли работать, ну и конечно - можно придумать комбинации не правильные, но таких тегов не бывает



--------------------
PM MAIL WWW   Вверх
capitan
Дата 4.12.2009, 12:27 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 1
Всего: 13



А причем тут регулярки?
Код

   $tags = get_meta_tags('http://forum.vingrad.ru/');
    echo iconv("UTF-8", "WINDOWS-1251", $tags['keywords']).'<br /><br />';
    echo iconv("UTF-8", "WINDOWS-1251", $tags['description']);


Читать тут: http://www.php.net/manual/en/function.get-meta-tags.php

Это сообщение отредактировал(а) capitan - 4.12.2009, 12:30
PM MAIL WWW ICQ   Вверх
supercelt
Дата 19.12.2009, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



capitan Работает!. Но проблема в том, например, если кодировка меты в 1252 или вообще в мак. Как заранее узнать тогда кодировку меты?
PM   Вверх
patap
Дата 19.12.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 5
Всего: 40



думаю правильнее будет не кодировку меты, а кодировку страницы

get_headers()


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.