Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Регулярка, Текст между тегами в переменную
NitroGenerate  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 243
Пользователь №: 27946
На форуме: 6 лет, 4 дня
Карма: 11




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

Вот пример:
Текст...
<img>http://site.ru/e041a56a056e.jpg</img>

Еще какой-то текст...

<URL=http://site.ru/1aa0007ce420be8b0.html><IMG>http://site.ru/1aa0007ce420be8b0b82fcb739a3a6.jpeg</IMG></URL>


Написал свою кривую регулярку:

preg_match("#\<img\>(.+?)\</img\>#is",$row['descr'],$matches);
foreach ($matches as $value) {
echo "Значение: $value<br />\n";
}


Но на выходе получаю:
Значение: <img>http://site.ru/e041a56a056e.jpg</img>
Значение: http://site.ru/e041a56a056e.jpg

Не могу понять, почему 2 результата то, ведь должен быть 1. Должно получаться
http://site.ru/e041a56a056e.jpg

И еще, второй поиск
preg_match("#\<URL(.+?)\<URL\>#is",$row['descr'],$matches2);
foreach ($matches2 as $value2) {
echo "Значение: $value2<br />\n";
}

тут должно быть что-то вроде:
<URL=http://site.ru/view/...><IMG>http://site.ru/1aa0007ce420be8b0b82fcb739a3a6.jpeg</IMG></URL>
(включая тег, не знаю как регулярку написать под это)
И опять 2 значения одно в тегах, другое нет.



Спустя 9 минут, 8 секунд (19.03.2012 - 13:41) Visman написал(а):
Цитата (NitroGenerate @ 19.03.2012 - 18:31)
Не могу понять, почему 2 результата то, ведь должен быть 1. Должно получаться

Возвращает массив. В элементе 0 - все что соответствует регулярному выражению, в элементе 1 - первая скобка и т.д.

Спустя 42 секунды (19.03.2012 - 13:41) ADiel написал(а):
Значения все, начиная с 1. 0 - это строка, попавшая под регулярку.

Спустя 16 минут, 56 секунд (19.03.2012 - 13:58) NitroGenerate написал(а):
Спасибо. С этим разобрался.
Не знаю как написать регулярку что бы в результат...
Хотя... кажется знаю...
Делаю вторую регулярку :

preg_match("#\<URL(.+?)\<URL\>#is",$row['descr'],$matches2);
foreach ($matches2 as $value2) {
echo "Значение: $value2<br />\n";
}

Перебираю результаты переменной и
к каждой строчке
=http://site.ru/view/...><IMG>http://site.ru/1aa0007ce420be8b0b82fcb739a3a6.jpeg</IMG>
Дописываю теги:
<URL=http://site.ru/view/...><IMG>http://site.ru/1aa0007ce420be8b0b82fcb739a3a6.jpeg</IMG></URL>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса