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]   

> Без описания
Elegant
Отправлено: 02 Декабря, 2014 - 08:25:16
Post Id



Частый гость


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


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




Подскажите как правильно вытащить значение из строки такого рода
Цитата:

<li><a class='item' data-level='2' data-id='24' data-orgs='1'><span>Категория 1</span></a></li><li><a class='item' data-level='2' data-id='25' data-orgs='1'><span>Категория 2</span></a></li><li><a class='item' data-level='2' data-id='26' data-orgs='1'><span>Категория 3</span></a></li>


Нужно вытащить значения data-level, data-id, data-orgs и название Категория #

Я начал так...разбиваю eplode'ом по </span></a></li>... а вот дальше не знаю.....
думал через substr сделать, но значения могут быть от 1 до 999...
Подскажите пожалуйста!


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

(Отредактировано автором: 02 Декабря, 2014 - 09:30:20)

 
 Top
Panoptik
Отправлено: 02 Декабря, 2014 - 12:25:38
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


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




PHP:
скопировать код в буфер обмена
  1. $str = "<li><a class='item' data-level='2' data-id='24' data-orgs='1'><span>Категория 1</span></a></li><li><a class='item' data-level='2' data-id='25' data-orgs='1'><span>Категория 2</span></a></li><li><a class='item' data-level='2' data-id='26' data-orgs='1'><span>Категория 3</span></a></li>";
  2.  
  3.  
  4. if(preg_match_all("!data-level='(\d+)' data-id='(\d+)' data-orgs='(\d+)'><span>Категория (\d)!", $str, $matches)) {
  5.   // var_dump($matches);
  6.  
  7.    $results = array();
  8.     foreach($matches[1] as $k => $values) {
  9.         $results[] = array(
  10.             'level' => $matches[1][$k],
  11.             'id' => $matches[2][$k],
  12.             'orgs' => $matches[3][$k],
  13.             'category' => $matches[4][$k],
  14.         );
  15.     }
  16.     var_dump($results);
  17. }
  18.  

(Отредактировано автором: 02 Декабря, 2014 - 12:28:31)



-----
Just do it
 
 Top
Elegant
Отправлено: 02 Декабря, 2014 - 18:36:51
Post Id



Частый гость


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


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




Спасибо, помогло, а как взять данные не
CODE (htmlphp):
скопировать код в буфер обмена
  1. <span>Категория (\d)

А полноценно то что находиться между span'ами...т.е. КАТЕГОРИЯ 1
 
 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