Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вырезать из тэгов в массив

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
KApriS
Отправлено: 03 Октября, 2012 - 14:52:59
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Помогите пжалста. строка типа
CODE (html):
скопировать код в буфер обмена
  1. <dl> <dt>Адрес отправителя</dt> <dd>ИРа </dd> <dt>Текст отзыва</dt> <dd>Тест</dd> </dl>

необходимо элементы между тэгам dd вырезать в массив для дальнейшей обработки.
пробовала
PHP:
скопировать код в буфер обмена
  1. if (preg_match('|<dd.*?>(.*)</dd>|sei', $item->content, $arr)) $title = $arr[1];
  2.   else $title='';

так в этом случае в $title помещается элемент от первого dd до последнего /dd. а мне нужно, чтобы получился массив из двух элементов. {ИРа,Тест}
 
 Top
Alho
Отправлено: 03 Октября, 2012 - 15:04:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


Помог: 11 раз(а)




PHP:
скопировать код в буфер обмена
  1.     if (preg_match_all('|<dd.*?>(.*)</dd>|Usei', $item->content, $arr)) $title = $arr[1];
  2.       else $title='';


Т.е. ищем все подходящие элементы отключаем жадность.
 
 Top
KApriS
Отправлено: 04 Октября, 2012 - 15:51:40
Post Id


Частый гость


Покинул форум
Сообщений всего: 133
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Alho пишет:
PHP:
скопировать код в буфер обмена
  1.     if (preg_match_all('|<dd.*?>(.*)</dd>|Usei', $item->content, $arr)) $title = $arr[1];
  2.       else $title='';


Т.е. ищем все подходящие элементы отключаем жадность.

у меня почему то не получилось Недовольство, огорчение. но вот такое исполнение, может, конечно, кривовато, но дает необходимое
CODE (html):
скопировать код в буфер обмена
  1. <? if (preg_match_all('|<dd.*?>(.*?)</dd>|sei', $item->content, $arr))
  2.   { $name = $arr[1][0]; $title=$arr[1][1];}
  3.  
  4. ?>
  5. <div class="rewiew-item">
  6.   <p><strong>Автор: {$name}</strong><br>
  7.        {$title}
  8.   </p>
  9. </div>

но подсказанная смена функции мне явно помогла, спасибо)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB