2013-02-19 9 views
5

Przeczytałem przez kilka pytań tutaj i nie jestem pewien, czy powinienem używać do tego celu file_get_contents lub file_get_html.Jak korzystać z file_get_contents lub file_get_html?

Wszystko, co próbuję zrobić, to użyć PHP do wyświetlania dwóch tabel z tej strony na mojej stronie internetowej: http://www.statmyweb.com/recently-analyzed/

wiem, jak uzyskać ich pełną stronę i wyświetli go na moim miejscu oczywiście, ale Nie wiem, w jaki sposób mogę po prostu pobrać te dwie tabele bez pobierania nagłówka/stopki.

+0

@ Mark Baker, tag simple-html-dom mógł być dobrą wskazówką – pguardiario

+0

@pguardiario - prawda, powinienem był zauważyć, że –

Odpowiedz

1

Nie można określić w file_get_contents() tylko w celu pobrania tabel.

Trzeba by uzyskać wartość zwracaną file_get_contents() używając:

, a następnie analizować zmiennej $result i wyodrębnić jakie informacje potrzebne do wyjścia.

0

Pobierz pełną treść witryny przez file_get_contents(), a następnie zastosuj preg_match w materiałach, które masz z <table> i </table>. Spowoduje to wyświetlenie całej zawartości pod tagami tabeli. Wyświetlając go na swojej stronie internetowej, po prostu wpisz <table>, a następnie echo dopasowanej treści i na końcu </table>.

+0

+1 Byłoby to bolesne (szczególnie, gdy dostępne jest narzędzie takie jak simple_html_dom), ale na pewno zadziała. –

+0

Będzie działać dla tego konkretnego przykładu, ale zawiedzie w niektórych innych przypadkach, na przykład, gdy jest zagnieżdżony element '' '' '' wewnątrz '' 'table''' –

23

Chcesz file_get_html, ponieważ file_get_contents załaduje ciało odpowiedzi na ciąg znaków, ale file_get_html załaduje go do simple-html-dom.

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

Alternatywnie można użyć file_get_contents wraz z str_get_html:

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

Ale to byłoby głupie.

+0

jak możesz ukryć $ dom w łańcuchu , które mają podobny ciąg, który możemy uzyskać przez file_get_content, czy też jakąś inną funkcję, taką jak file_get_content, aby uzyskać ciąg od $ dom – Nit