Регулярное выражение помогите составить

M
На сайте с 24.11.2006
Offline
5
689

Подскажите пожалуйста регулярное выражение для поиска мета-тега robots

Спасибо за ответы

DU
На сайте с 20.10.2006
Offline
105
#1

Вопрос совсем не понятен? Нужно выбрать его значение или проверить на наличие?

nickspring
На сайте с 29.03.2006
Offline
228
#2

DIMON-UA, а разве выражение не будет в обоих случаях одинаковое? :)

Mmonger
На сайте с 01.12.2005
Offline
165
#3
nickspring:
DIMON-UA, а разве выражение не будет в обоих случаях одинаковое? :)

Нет, в первом случае достаточно убедиться, что есть meta name="robots", во втором - выбрать подстроку blabla из <meta name="robots" content="blabla">

Попробуйте так:

preg_match("#<meta name=\"robots\" content=\"(.*?)\">#s", $content, $result)

В онлайне есть онлайн-проверка регекспов: http://www.pcre.ru/eval/

Если пользуетесь PHP, то есть уже готовая функция get_meta_tags()

Пример

<?php

$tags = get_meta_tags('http://www.example.com/');
echo $tags['robots'];
?>

Рекомендую воспользоваться программой для составления и проверки регулярных выражений RegexBuddy: http://www.regexbuddy.com/

Всё будет хорошо, но мы приложим усилия!
M
На сайте с 24.11.2006
Offline
5
#4

get_meta_tags() не подходит. кажется мне что при использовании этой функции скачивается вся страница, а трафик хотелось бы минимизировать

preg_match("#<meta name=\"robots\" content=\"(.*?)\">#s", $content, $result) 

а если не двойные кавычки а одинарные, если буквы не прописные а заглавные?

Mmonger
На сайте с 01.12.2005
Offline
165
#5

Пишите одинарные кавычки, для угниверсальности можно сделать условие, что или те, или те.

Для регистронезависимости используйте модификатор i (PCRE_CASELESS)

Документация на модификаторы на русском тут: http://www.pcre.ru/docs/php/text/stdmod/

M
На сайте с 24.11.2006
Offline
5
#6
для угниверсальности можно сделать условие, что или те, или те.

а как составить такое условие? (robots|ROBOTS) ?

L
На сайте с 24.02.2005
Offline
181
#7
Mefistofel:
get_meta_tags() не подходит. кажется мне что при использовании этой функции скачивается вся страница, а трафик хотелось бы минимизировать

ЭЭЭ, а как иначе? Конечно можно читать половину файла допустим или первые 10 строк, но это по скорости прирост не слишком большой даст

Y
На сайте с 02.01.2006
Offline
138
#8

Mefistofel, по РВ ознакомьтесь с материалом:

http://phpclub.ru/detail/article/regexp_1

http://phpclub.ru/detail/article/regexp_2

По всему остальному:

1. я бы сказал, что это не совсем профильный форум, чтобы такие вопросы задавать ;)

2. когда нужна подсказка, пишите хотя бы минимальные исходные данные, а то народ в 100% случаев подразумевает, что Вы на PHP пишете.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий