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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярное Выражение, проблема с точкой 
V
    Опции темы
ZTI831
Дата 9.8.2009, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!
Помогите пожалуйста разобраться с регулярным выражением.
Вроде все делал по инструкции: smile 
Код

<?php
$content = file_get_contents ("http://www.smarty.net/manual/ru/");
preg_match_all ("#<a.+href=\".+(/|\.php|\.html).*\">.+</a>#isUm", $content, $links);
echo "<pre>";
var_dump ($links);
?>

Цель скрипта: Занести все ссылки в массив.
Мне кажется проблеа с точкой.
PM   Вверх
gcc
Дата 9.8.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

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



Код

  <?php
$w='<a href="index.html" rel="index">ancor</a>';
$re='{
<a\b
(?:(?=
  (?>\s*\b[a-z]+(?:\s*=\s*(?:"[^"]*"|\'[^\']*\'|[^<>"\'\s]+))?)*
  \s*\brel\s*=\s*(?|"([^"]*)"|\'([^\']*)\'|([^<>"\'\s]+))
))?
(?>\s*\b[a-z]+(?:\s*=\s*(?:"[^"]*"|\'[^\']*\'|[^<>"\'\s]+))?)*
\s*\bhref\s*=\s*(?|"([^"]*)"|\'([^\']*)\'|([^<>"\'\s]+))
(?>\s*\b[a-z]+(?:\s*=\s*(?:"[^"]*"|\'[^\']*\'|[^<>"\'\s]+))?)*
\s*>
(.*?)
</a\s*>
}xis';
preg_match($re, $w, $m);
print_r($m); 


Код

<a\s*href\s*=\s*(['\"])(.*?)\\2\s*(rel\s*=\s*(['\"])(.*?)\\5)>(.*)<\/a>

PM WWW ICQ Skype GTalk Jabber   Вверх
patap
Дата 9.8.2009, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



когда-то писал..на заюзать попробуй

(ftp|https?)://((?:[\w\-]+)\.(?:[\w]{2,4}))((?:/?(?:[\w\-]+(?:\.[\w]{1,4})?)?)+)(?:\?)?((?:(?:[\w]+(?:\[\])?(?:\=[\w]+\&?)?)+)?)\#?([\w\-]+)?


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
Mal Hack
Дата 9.8.2009, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



ZTI831, для кого было сделано: http://forum.vingrad.ru/forum/topic-75770.html
Цитата(ZTI831 @  9.8.2009,  17:22 Найти цитируемый пост)
Мне кажется проблеа с точкой. 

Говорить о том, в чем тут проблема, можно будет тогда, когда будет видно что вы имеете на входе, а что на выходе вашего скрипта....
Т.к. скорее всего проблема у вас в получении гипертекста с удаленного сервера.
PM ICQ   Вверх
ZTI831
Дата 9.8.2009, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В ваших примерах я ни грамма не понял.
Цитата

<a\s*href\s*=\s*(['\"])(.*?)\\2\s*(rel\s*=\s*(['\"])(.*?)\\5)>(.*)<\/a>


Тут не совсем правильно т.к. перед href может идти rel

Можете привести пример на моём уровне или модифицируйте/исправте мой пример, ведь он от чати работает.

Добавлено через 2 минуты и 38 секунд
Цитата(Mal Hack @ 9.8.2009,  17:15)
ZTI831, для кого было сделано: http://forum.vingrad.ru/forum/topic-75770.html
Цитата(ZTI831 @  9.8.2009,  17:22 Найти цитируемый пост)
Мне кажется проблеа с точкой. 

Говорить о том, в чем тут проблема, можно будет тогда, когда будет видно что вы имеете на входе, а что на выходе вашего скрипта....
Т.к. скорее всего проблема у вас в получении гипертекста с удаленного сервера.

Почему проблемы на входе? Гипертекст читается номрально и весь.
PM   Вверх
Mal Hack
Дата 9.8.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Цитата(ZTI831 @  9.8.2009,  18:18 Найти цитируемый пост)
Почему проблемы на входе? Гипертекст читается номрально и весь. 

Тогда считаем, что вам повезло smile
PM ICQ   Вверх
ZTI831
Дата 9.8.2009, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

ZTI831, для кого было сделано: http://forum.vingrad.ru/forum/topic-75770.html

Я не сдуваю готовые ответы. Мне важно узнать что я сделал не так в своем скрипте.

Это сообщение отредактировал(а) ZTI831 - 9.8.2009, 17:30
PM   Вверх
Mal Hack
Дата 9.8.2009, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



ZTI831
Цитата(Mal Hack @  9.8.2009,  18:15 Найти цитируемый пост)
Говорить о том, в чем тут проблема, можно будет тогда, когда будет видно что вы имеете на входе, а что на выходе вашего скрипта....

разве я этого не писал????
Теперь смотрим HTML код, делая работу за вас. Там видим:
Код
<a href="/resources.php?category=7" class="menuBlack">

Вот скажите, как у вас в паттерне описана часть 
Код
 class="menuBlack"

????
Я бы на вашем месте, "ловил" бы толлько href'ы, привязанные к <a. И все.

Это сообщение отредактировал(а) Mal Hack - 9.8.2009, 19:39
PM ICQ   Вверх
ZTI831
Дата 9.8.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



"#<a.+href=\".+(/|\.php|\.html).*\">.+</a>#isUm" - вот синим отметил (точка - любой символ включая символы \r\n и звездочка - повторяется 0 и более раз) разв не правильно?
PM   Вверх
ZTI831
Дата 9.8.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Заметил!, поменял местами: "#<a.+href=\".+(/|\.php|\.html)\".*>.+</a>#isUm" , однако все равно выходит лишнее.

Это сообщение отредактировал(а) ZTI831 - 9.8.2009, 20:47
PM   Вверх
Mal Hack
Дата 10.8.2009, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

Репутация: 122
Всего: 261



Цитата(ZTI831 @  9.8.2009,  21:37 Найти цитируемый пост)
, однако все равно выходит лишнее.

Что лишнее??
PM ICQ   Вверх
ZTI831
Дата 10.8.2009, 21:18 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да пока тут ответя, я кмс умею написать. Я справился 1.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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