Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP Таблицу HTML в Массив

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе утро!  
CURL'ом получаю данные в виде обычной строки

Код:
 
<tr data-guid="dde45ff5101e4d7eaf0884184fbfd4ca">
    <td class="e"></td>
    <td class="c"></td>
    <td class="trim"></td>
    <td class="trim"></td>
    <td class="c"></td>
    <td></td>
    <td></td>
    <td class="r"></td>
    <td class="r bg-green"></td>
    <td class="r"></td>
</tr>
<tr data-guid="3b79a48c7c3f4689adbe4b53151d2c01">
    <td class="e"></td>
    <td class="c"></td>
    <td class="trim"></td>
    <td class="trim"></td>
    <td class="c"></td>
    <td></td>
    <td></td>
    <td class="r"></td>
    <td class="r bg-red"></td>
    <td class="r"></td>
</tr>
 

Ну и так далее. Преобразовать это в массив не составляет труда. Но я не могу присвоить уникальный ключ значению массива, который содержится в data-guid="3b79a48c7c3f4689adbe4b53151d2c01".
У меня просто массив без ключей, содержащий значения между <td></td>. Как его привести к виду:

Код:
 
{
"3b79a48c7c3f4689adbe4b53151d2c01":{"значения между <td></td>"},  
"dde45ff5101e4d7eaf0884184fbfd4ca": {"значения между <td></td>"}
}
 

И так далее.

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 06:01 10-12-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
Преобразовать это в массив не составляет труда

значит представляет. вот когда преобразуете, тогда ключ и вытаскиваете - регуляркой или иным способом

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 06:31 10-12-2017
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Ну я делаю так.

Код:
 
preg_match_all('#<td>(.+?)</td>#s', $result, $matches);
$data = array_chunk($matches[1], 9);
 

 
А вот как ему ключ задать, увы не пойму. Не складывать же два массива?

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 07:33 10-12-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
А вот как ему ключ задать, увы не пойму

ну элементарно же. разбивать сначала по tr, а потом уже по td внутри

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 07:34 10-12-2017
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii да я регулярку не могу составить. Проблемы у меня с ней, я их вообще не понимаю. Эту и то нарыл на просторах рунета.

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 07:39 10-12-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
да я регулярку не могу составить

тогда зачем, в который раз, новую тему создаем??
PHP: Регулярные выражения (RegExp, Regular, eregi, preg)
все настолько просто, что нужно сесть раз и разобраться, иначе смысла нет вообще вебпрограммированием заниматься.
 

Код:
$arr = [];
preg_match_all('#<tr\s+data-guid="(.*)">(.*)</tr>#Us', $str, $m1);
foreach($m1[0] as $i => $m) {
  preg_match_all('#<td.*>(.*)</td>#Us', $m, $m2);
  $arr[$m1[1][$i]] = $m2[1];  
}
var_dump($arr);

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 07:50 10-12-2017
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii я читал про регулярные выражения чуть более чем over9000 раз, однажды я смог его написать сам, но прешел год без практики и снова это глобальная проблема.  
Спасибо Mavrikii за помощь

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 08:01 10-12-2017
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP Таблицу HTML в Массив


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru