Задать вопрос
Davlik
@Davlik

Как спарсить определенный столбец из html таблицы?

Есть таблица:
https://jsfiddle.net/zghmnt17/

Подтолкните пожалуйста, как можно сделать вывод в массив определенного столбца?

Array(
[8:30-10:00] => "Языки программирования..."
[10:10-11:40] => "Мат логика"
...
)


Сейчас использую Simple HTML DOM
error_reporting(E_ALL);
	ini_set('allow_url_fopen','1');
	include_once('simple_html_dom.php');
	$html = file_get_html('http://kpfu.ru/week_sheadule_print?p_group_name=09-533');
	foreach($html->find('table tr td') as $e){
		$arr[] = trim($e->innertext);
	}
	
	print_r($arr);

Выводится массив полностью, каждое значение еще и в кракозябрах(ромбики с вопросом внутри, но это не главная проблема).
Может кто-то делал что-то подобное?
  • Вопрос задан
  • 989 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
foreach($html->find('table tr td') as $e){

У Вас селектор не соответствует поставленной задаче, он должен выглядеть либо как-то так:

foreach($html->find('table tr td:eq(3)') as $e)

либо, вот так:

foreach($html->find('table tr td', 3) as $e)

где 3 - индекс элемента в наборе, относительно родителя (начинается с нуля, если мне память не изменяет).

Как именно написать правильно в рамках php_simple_html_dom я точно сказать не могу (я последний раз пользовался phpQuery а потом DomCrawler (из Symfony)), но основная суть в том, что Вы должны найти/использовать аналог фильтра eq из JQuery.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы