Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите составить Регулярное Выражение для извлечения информации из HTML-кода
 
 автор: AlexDIXI   (26.10.2008 в 05:16)   письмо автору
 
 

Доброе время суток.

html код такой.


 <html>
<head>
<title>title</title>
</head>
<body>

<a href="http://">click here</a>  // не обрабатывать т.к. 
ссылается не на изображение и в якоре ссылки стоит текст а 
не <img src..


<a href="http://lin.com"><img src="01.jpg"></a> // не 
обрабатывать потому что ссылается на НЕ изображение .jpg


<a href="http://lin.com/papka/01_full.jpg"><img 
src="01.jpg"></a> // обработать потому что ссылается на 
изображения .jpg и в якоре есть <img src...  нужно вытащить 
http://lin.com/papka/01_full.jpg и 01.jpg естественно это 
шаблонные примеры.

Да и примеры которые могут встречаются в hrml коде их тоже 
нужно обрабатывать, смысл остается один, дернуть url на 
ссылку и на изображение, если такие встречаются и если a 
href ведет на .jpg и в якоре <img src..,  занести в 
многомерный массив:
<A HREF="http://lin.com/papka/01_full.jpg"><IMG SRC="01.jpg"></A>

<a href=http://lin.com/papka/01_full.jpg><img
 src=01.jpg></a>

<a href="http://lin.com/papka/01_full.jpg" 
target="_blank"><img src="01.jpg" alt="" width="160" 
height="180" border="1"></a>

</body>
</html>


Я очень прошу Вас помочь. Спасибо!

  Ответить  
 
 автор: cheops   (26.10.2008 в 10:02)   письмо автору
 
   для: AlexDIXI   (26.10.2008 в 05:16)
 

Ммм... а вопрос-то какой?

  Ответить  
 
 автор: AlexDIXI   (26.10.2008 в 15:26)   письмо автору
 
   для: cheops   (26.10.2008 в 10:02)
 

нужен патерн я не умею состовлять его.

  Ответить  
 
 автор: ddhvvn   (26.10.2008 в 17:19)   письмо автору
 
   для: AlexDIXI   (26.10.2008 в 15:26)
 

ДЛЯ ЧЕГО паттерн то?

  Ответить  
 
 автор: AlexDIXI   (26.10.2008 в 17:26)   письмо автору
 
   для: ddhvvn   (26.10.2008 в 17:19)
 

Для preg_match_all

  Ответить  
 
 автор: ddhvvn   (26.10.2008 в 17:35)   письмо автору
 
   для: AlexDIXI   (26.10.2008 в 17:26)
 

Вы нас убить хотите?! )

Что должна извлекать preg_match_all ? Для чего нужно?

  Ответить  
 
 автор: AcidTrash   (26.10.2008 в 18:22)   письмо автору
 
   для: AlexDIXI   (26.10.2008 в 05:16)
 

А что извлечь, то надо?

  Ответить  
 
 автор: Trianon   (26.10.2008 в 18:35)   письмо автору
 
   для: AcidTrash   (26.10.2008 в 18:22)
 

парни, кончайте тормозить.
Там в анализируемом тексте всё написано.

  Ответить  
 
 автор: AcidTrash   (26.10.2008 в 19:17)   письмо автору
 
   для: Trianon   (26.10.2008 в 18:35)
 

Понял :)

  Ответить  
 
 автор: AlexDIXI   (26.10.2008 в 22:47)   письмо автору
 
   для: AcidTrash   (26.10.2008 в 19:17)
 

2AcidTrash
2Trianon
ребята помогите, пожалуйста. тормазнул на 2 дня ну никак без Рег. Выражения.

  Ответить  
 
 автор: AlexDIXI   (26.10.2008 в 23:31)   письмо автору
 
   для: AlexDIXI   (26.10.2008 в 22:47)
 

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

Нужно составить патерн preg_match_all - таким образом, что б с html кода выдернуть все ссылки ахреф'а если они введут на изображение .jpg и в якоре ахреф'а присутствует <img src.. И с <img src тоже дернуть урл на картинку. При этом регистр не должен иметь значение, да и если есть кавычки или их нет например (<img src=") то попадать в результат те кавычки не должны.

Вот и все что требуется. Помогите пожалуйста!

  Ответить  
 
 автор: ddhvvn   (26.10.2008 в 23:24)   письмо автору
 
   для: AlexDIXI   (26.10.2008 в 05:16)
 

ну если я правильно все понял, то вот на скорую руку накатал...
#<a\s+href=\"?([^\"\s]+(gif|jpg|png))\"?[^>]*><img\s+src=\"?([^\"\s]+(gif|jpg|png))\"?[^>]*></a>#is


отлаживать/оптимизировать щас уже нету мозга )
если ничего не предложат, то завтра...

  Ответить  
 
 автор: AlexDIXI   (26.10.2008 в 23:32)   письмо автору
 
   для: ddhvvn   (26.10.2008 в 23:24)
 

Ага, спасибо! Сейчас попробую, gif и png не нужно вообщето, ну и так хорошо. Сейчас гляну..

  Ответить  
 
 автор: AlexDIXI   (26.10.2008 в 23:41)   письмо автору
 
   для: ddhvvn   (26.10.2008 в 23:24)
 

Неа, не работает. =(


<?php
$gs 
file_get_contents($res);
        
preg_match_all("#<a\s+href=\"?([^\"\s]+(gif|jpg|png))\"?[^>]*><img\s+src=\"?([^\"\s]+(gif|jpg|png))\"?[^>]*></a>#is"$gs$mots); 
         
        
print_r ($mots);
?>

  Ответить  
 
 автор: Trianon   (26.10.2008 в 23:55)   письмо автору
 
   для: AlexDIXI   (26.10.2008 в 23:41)
 

А я вот запустил с этим кодом Ваш пример из Вашего же поста, и он отловил именно те четыре ссылки, которые Вы сказали отловить.

Какого же лешего Вам надо?!

  Ответить  
 
 автор: AlexDIXI   (27.10.2008 в 00:04)   письмо автору
 
   для: Trianon   (26.10.2008 в 23:55)
 

Ага, работает, я извиняюсь. Спасибо ОГРОМНОЕ!

ddhvvn скинь вмз кошелек - отблагодарю на пиво..

  Ответить  
 
 автор: AlexDIXI   (27.10.2008 в 00:09)   письмо автору
 
   для: Trianon   (26.10.2008 в 23:55)
 

2Trianon
Цитата: Какого же лешего Вам надо?!
Ну и манера общения у Вас, я Вам скажу..

По Вашему если человек ошибся то он тут же должен быть оскорблен? Ну и воспитание..

  Ответить  
 
 автор: Trianon   (27.10.2008 в 01:07)   письмо автору
 
   для: AlexDIXI   (27.10.2008 в 00:09)
 

>2Trianon
>Цитата: Какого же лешего Вам надо?!
>Ну и манера общения у Вас, я Вам скажу..
> По Вашему если человек ошибся то он тут же должен быть оскорблен? Ну и воспитание..

человек - нет.

Но человек не стал бы тратить два дня на то, чтобы выпросить один код для воровства другого кода.
Человек написал бы код сам. В крайнем случае использовал повод для того, чтоб хотя бы примитивные регулярные выражения выучить - тихо, не выставляя свою сущность напоказ.

  Ответить  
 
 автор: AlexDIXI   (27.10.2008 в 01:22)   письмо автору
 
   для: Trianon   (27.10.2008 в 01:07)
 

Так вот знайте уважаемый, все это для чистой практики. И не судите пожалуйста, ибо права Вам на это никто не давал. Хам!

  Ответить  
 
 автор: AlexDIXI   (27.10.2008 в 02:30)   письмо автору
 
   для: ddhvvn   (26.10.2008 в 23:24)
 

2ddhvvn А нельзя ли уточнить preg_match_all что если в "<a тут есть например (id=, calss=) href=" то игнорировать эти атрибуты. Так все работает только вот такие моменты не срабатывают:

<a calss="tartatam" href=...
<a href=""><img boreder="0" src=...

  Ответить  
 
 автор: ddhvvn   (27.10.2008 в 10:19)   письмо автору
 
   для: AlexDIXI   (27.10.2008 в 02:30)
 

ммм... ну попробуйте это
#<a.+?href=\"?([^\"\s]+(gif|jpg|png))\"?[^>]*><img.+?src=\"?([^\"\s]+(gif|jpg|png))\"?[^>]*></a>#is

  Ответить  
 
 автор: AlexDIXI   (28.10.2008 в 00:17)   письмо автору
 
   для: ddhvvn   (27.10.2008 в 10:19)
 

Спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования