2009-07-17 15 views
1

Ich möchte den Inhalt einer Seite abrufen und nach meinem Geschmack umformatieren ...PHP-Retrieve Inhalt von Seite

Zum Beispiel:

  • Zum example.com
  • Get Inhalt innerhalb von Tags mit Klasse "x"
  • Pass Inhalte an bestimmte Variablen
  • den Inhalt in ein paar ziemlich form..array Ausspucken, csv, xml ...

Nicht zu schwer, oder? Ich bin ein PHP-Noob! :)

Antwort

2

Versuchen Sie mit PHP Simple HTML DOM Parser.

Sie können wie dieses nette Sachen tun:

// Create DOM from URL or file 
$html = file_get_html('http://www.google.com/'); 

// Find all images 
foreach($html->find('img') as $element) 
     echo $element->src . '<br>'; 

// Find all links with class=x 
foreach($html->find('a[class=x]') as $element) 
     echo $element->href . '<br>'; 
0

XSD könnte den Trick für Sie tun. Ich würde auch wget + CSS betrachten ...

1

Für die Daten bekommen, gibt es drei Schwierigkeitsstufen:

file_get_contents($url); //easy 

Leider eine Menge von Websites auf die nicht sehr empfänglich sind richtiger Benutzeragent. Du hast hier zwei Möglichkeiten. Einer ist ein bisschen härter als der andere. Zwischen ist Zend HTTP Client

$client = Zend_Http_Client(); //make sure to include Zend_Http, etc. 
$client->setConfig($params); // params will include proper user agent 
$client->setUri($aUrl); 
$html = $client->request()->getBody(); 

Option drei, die Sie vielleicht nicht einmal in Erwägung ziehen, wenn Sie wirklich behalten wollen es mehr Scripting als objektorientiert, ist zu erkunden PHP cURL functionality

Es gibt ein paar PHP- native Möglichkeiten, auf HTML-Daten über ein DOM-Objekt zuzugreifen, aber mein Favorit ist die Simple HTML DOM Parser. Es ist der jQuery/CSS-Stil-DOM-Navigation sehr ähnlich.

$domObject = new Simple_HTML_Dom($html); 
foreach ($domobject->find('div#theDataYouWant p') as $sentence) 
{ 
    echo "<h3>{$sentence}</h3>"; 
} 
Verwandte Themen