Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 109

Как парсить определённый td

02.12.2017, 11:14. Показов 4224. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Подскажите пожалуйста как спарсить определённые td из <div id="general">, таких таблиц несколько,
Почитав мануал по simple_html_dom, я делаю так.
PHP
1
2
3
4
5
6
7
8
9
10
header("Content-type: text/html; charset=utf-1251");
 
include ('simple_html_dom.php');
 
 
$html = file_get_html('test.php');
 
$es = $html->find(' div#general',0) ->find('td',0);
 
echo $es . '</br>';
Выводится нужный мне td, но только один
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2017, 11:14
Ответы с готовыми решениями:

Как парсить
Всем привет как парсить текст с сайта если его нету в html коде

Как Парсить
Столкнулся таким вопросом как мне парсить все что есть в k вот код procedure TForm2.sBitBtn1Click(Sender: TObject); var ...

Как парсить Json
Доброго времени суток, вот написал скрипт (запрос и получение ответа), и смотрю там в ответе json.. С ним никогда не сталкивался,...

9
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
02.12.2017, 13:02
PHP
1
$es = $html->find('#general td');
А дальше $es обходите в цикле.
0
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 109
02.12.2017, 13:18  [ТС]
PHP
1
2
3
4
foreach ($es as $value)
    {
      echo $value . '</br>';  
    }
Не даёт нужного результата

Добавлено через 10 минут
Что то, в принципе я делаю не так, мне нужно из всех <div="general"> вытащить ('td'=0)
Кажется простая задача для библиотеке simple_html_dom, я думал напишу код
PHP
1
2
3
$es = $html->find(' div#general') ->find('td',0);
 
echo $es . '</br>';
и всё получится, но нет, уже 3-е сутки воюю, в php я лох)
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
02.12.2017, 13:25
<div="general"> -- что до "равно" идёт? id или class?
0
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 109
02.12.2017, 13:32  [ТС]
Цитата Сообщение от Para bellum Посмотреть сообщение
<td>TD 1</td></br><td>TD 2</td></br><td>TD 3</td></br>
А надо, что бы выводились только <td>TD 1</td> из множества таблиц где <div id="general">, к примеру есть 5 блоков <div id="general"> в которых содержится таблица, мне из всех 5 нужно вытащить первый <td>
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
02.12.2017, 13:32
Лучший ответ Сообщение было отмечено alex380 как решение

Решение

Так выведет по первому TD из каждого элемента с классом "general":
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
 
header("сontent-type: text/html; charset=utf-8");
 
include ('simple_html_dom.php');
 
$html = file_get_html('test.php');
 
foreach ($es = $html->find('.general') as $value) {
    echo $value ->find('td', 0). '</br>';  
}
P.S. Предыдущее сообщение я изменил.
1
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 109
02.12.2017, 13:57  [ТС]
Цитата Сообщение от Para bellum Посмотреть сообщение
Так выведет по первому TD из каждого элемента с классом "general":
Так работает, спасибо большое), а если усложнить немного и добавить условие: если в первом <tr> значение <th> = (ASCII код), тогда забираем <td> из второго <tr>.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
02.12.2017, 14:14
Пример HTML-кода приведите. Лучше кусок побольше.
0
0 / 0 / 0
Регистрация: 27.11.2015
Сообщений: 109
02.12.2017, 14:26  [ТС]
Цитата Сообщение от Para bellum Посмотреть сообщение
Пример HTML-кода приведите. Лучше кусок побольше.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div role="tabpanel" class="tab-pane active" id="general">
    <h3>Общая информация</h3>
    <table class="table table-striped table-hover">
        <tr><th scope="row">Шорткод <span class="text-muted">(Short Code)</span></th><td>:couplekiss:</td></tr>  
        <tr><th scope="row">Категория в Unicode</th><td>Miscellaneous Symbols and Pictographs</td></tr>   
        <tr><th scope="row">Подкатегория в Unicode</th><td>Romance Symbols</td></tr>
        <tr><th scope="row">Диапазон в Unicode</th><td>1F300–1F5FF</td></tr>                         
        <tr><th scope="row">Добавлен в Unicode</th><td>начиная с iOS 5.1</td></tr>                 
    </table>
</div>
 
<div role="tabpanel" class="tab-pane active" id="general">
    <h3>Общая информация</h3>
    <table class="table table-striped table-hover">
        <tr><th scope="row">ASCII код</th><td>:D</td></tr>                           
        <tr><th scope="row">Шорткод <span class="text-muted">(Short Code)</span></th><td>:grinning:</td></tr>
        <tr><th scope="row">Категория в Unicode</th><td>Emoticons</td></tr>
        <tr><th scope="row">Подкатегория в Unicode</th><td>Faces</td></tr>
        <tr><th scope="row">Диапазон в Unicode</th><td>1F600–1F64F</td></tr>
        <tr><th scope="row">Добавлен в Unicode</th><td>начиная с iOS 8.3</td></tr>
    </table>
</div>
В первом блоке нужно выдернуть значение <td> из первого <tr>, во втором значение <td> из второго<tr>, может быть можно как нибудь за двоеточие зацепится в <td>:grinning:</td>, <td>:couplekiss:</td>.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
04.12.2017, 15:52
Цитата Сообщение от alex380 Посмотреть сообщение
может быть можно как нибудь за двоеточие зацепится
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
header("сontent-type: text/html; charset=utf-8");
 
include ('simple_html_dom.php');
 
$html = file_get_html('test.php');
 
foreach ($html->find('.general') as $value) {
    $nested = $value ->find('td');
    
    $key = substr_count($nested[0], ':') > 1 ? 0 : 1;
    
    echo $nested[$key]->plaintext, '</br>';  
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2017, 15:52
Помогаю со студенческими работами здесь

Как парсить JSON
Как парсить JSON (ответ от VK api)? Сейчас работаю с xml, но получается слишком громоздко, да и хочется попробовать работать с JSON ...

Как парсить Википедию?
Написать функцию city_site(name), принимающую на вход название города и возвращающую строку, содержащую адрес официального сайта этого...

Как парсить строку?
Здравствуйте, ув. форумчане!!! Подскажите пожалуйста как пропарсить строку с помощью запросов! Есть поле(Message), добавляются строки в...

Как парсить XML?
Как парсить XML?

Как парсить таблицу
Есть сайт, надо с него парсить таблицу. Таблица все время подгружается через бд, как парсить такую таблицу ? С помощью SIMPLE_HTML_DOM...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru