Как использовать file_get_contents или file_get_html?

Я прочитал здесь довольно много вопросов и не уверен, следует ли мне использовать для этого file_get_contents или file_get_html.

Все, что я пытаюсь сделать, это использовать PHP для отображения двух таблиц с этой страницы на моем веб-сайте: http://www.statmyweb.com/recently-analyzed/

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


person Community    schedule 19.02.2013    source источник
comment
@Mark Baker, тег simple-html-dom мог быть хорошей подсказкой   -  person pguardiario    schedule 20.02.2013
comment
@pguardiario - правда, я должен был это заметить   -  person Mark Baker    schedule 20.02.2013


Ответы (3)


Вы не можете указать в file_get_contents() только для получения таблиц.

Вам нужно будет получить возвращаемое значение file_get_contents(), используя:

$result = file_get_contents("urlHere");

Затем проанализируйте переменную $result и извлеките информацию, которую необходимо вывести.

person EM-Creations    schedule 19.02.2013

Вам нужен file_get_html, потому что file_get_contents загрузит тело ответа в строку, а file_get_html загрузит его в simple-html-dom.

$dom = file_get_html($url);
$tables = $dom->find('table');
echo $tables[0];
echo $tables[1];

В качестве альтернативы вы можете использовать file_get_contents вместе с str_get_html:

$dom = str_get_html(file_get_contents($url));

Но это было бы глупо.

person pguardiario    schedule 20.02.2013
comment
как вы можете покрыть $dom в строке, у которой есть аналогичная строка, которую мы можем получить с помощью file_get_content, или мы можем использовать любую другую функцию, такую ​​​​как file_get_content, для получения строки из $dom - person Nitin; 30.06.2016
comment
Обычно это было бы глупо. За исключением, возможно, того, что вы не можете использовать ни file_get_contents, ни file_get_html из-за ограничений (например, allow_url_fopen выключен). В этом случае вы, вероятно, соберете строку с помощью curl, а затем используете str_get_html. Не совсем вопрос ОП, но это может помочь кому-то .... - person niccol; 17.05.2019

Возьмите весь контент веб-сайта с помощью file_get_contents(), затем примените preg_match к контенту, полученному с помощью <table> и </table>. Это принесет вам все содержимое под тегами таблицы. Показывая его на своей веб-странице, просто поставьте <table>, затем повторите совпадающий контент и </table> в конце.

person programmer    schedule 19.02.2013
comment
+1 Это было бы болезненно (особенно когда доступен такой инструмент, как simple_html_dom), но определенно сработает. - person rodrigo-silveira; 25.07.2013
comment
Это будет работать для этого конкретного примера, но не будет работать в некоторых других случаях, например, когда внутри table есть вложенный элемент table. - person Yuval A.; 29.06.2015
comment
Как упоминалось ранее, функции регулярных выражений представляют собой неоптимальный инструмент для этой задачи. - person mickmackusa; 24.07.2018