Ich habe in diesem Blog ja bereits einmal darüber geschrieben, wie man mit Hilfe des Zend Frameworks fremde Seiten verarbeiten kann. Einen zweiten, sehr eleganten Weg, wie man fremde HTML Seiten verarbeiten kann, bietet die Bibliothek phpQuery. Diese greift zwar auch auf das Zend Framework zurück, bringt davon aber nur zwei Teilkomponenten mit und ist dadurch viel schlanker.

phpQuery greift die Vorgehensweise von jQuery auf und bietet eine zentrale Funktion an, mit deren Hilfe DOM Elemente in einem Dokument selektiert werden können. Beispielsweise liefert die folgende Funktion alle ‘ul’ Elemente.

$uls = pq('ul');

Mit phpQuery hat man natürlich auch die Möglichkeit, wie bei jQuery auch DOM Elemente zu manipulieren, zu löschen oder neue einzufügen.

Will man also beispielsweise alle Suchergebnisse von Google abgreifen, so reicht folgender Code aus, der dann alle gefundenen URLs ausgibt:

require('phpQuery/phpQuery.php');
$q = "phpquery";
$doc = phpQuery::newDocument(
	file_get_contents('http://www.google.com/search?q='.urlencode($q))
);
foreach(pq('.g', $doc) as $entry) {
	$url = pq($entry)->find('.r a')->attr('href');
	$title = pq($entry)->find('.r a')->html();
	echo '<a href="'.$url.'">'.$title.'</a><br />';
}

Mir gefällt der Ansatz, die Funktionalität von jQuery teilweise in die Welt von PHP zu übertragen. Jeder, der in irgendeiner Form HTML in PHP verarbeiten muss, sollte sich diese Bibliothek auf jeden Fall genauer ansehen.

Ähnliche Beiträge

  1. Mit Hilfe des Zend Frameworks fremde Seiten verarbeiten

6 Kommentare zu “Mit Hilfe von phpQuery fremde Seiten verarbeiten”

  1. Linkhub – Woche 11-2010 « pehbehbeh

    [...] phpQuery – fremde Seiten verarbeiten. [...]

     
  2. David

    Sehr cooles Script! Ich hatte bisher echt Probleme beim Parsen von Webseiten mit PHP da die meisten kein valides XHTML aufweisen.

     
  3. Tobi

    Wenn du da Probleme hast, dann empfehle ich dir, den HTML Text zuvor zu korrigieren. Mit htmLawed oder HTML Purifier gibt es schon zwei fertige Lösungen, mit denen du das einfach und schnell machen kannst.

    Viele Grüße
    Tobi

     
  4. JQuery-Portierung nach PHP | SemanticBlog

    [...] Ein Biespiel findet sich hier: Mit Hilfe von phpquery fremde Seiten verarbeiten [...]

     
  5. Theodore Gruenewald

    Awesome blog! Is your theme custom made or did you download it from somewhere? A theme like yours with a few simple tweeks would really make my blog shine. Please let me know where you got your theme. Many thanks

     
  6. Tobi

    Hi Theodore,

    I have created the theme myself. But I can recommend following collections of good and free themes:
    http://www.smashingmagazine.com/2010/08/19/100-free-high-quality-wordpress-themes-for-2010/
    http://www.webdesignerdepot.com/2010/04/60-awesome-new-wordpress-themes/

    Regards
    Tobi

     

Hinterlasse eine Antwort