Funktion - Filminfos von german.imdb.com
Jan
- php
0 Sönke Tesch0 Jan
0 Bernhard Mecl
Hallo!
Ich möchte gerne eine Funktion(en) in PHP schreiben, die die Wertung und die URL für das Cover des Films ausgibt. Diese Infos ollte sich die Funktion http://german.imdb.com holen. Als Eingabewert soll die IMDB Nummer dienen. Super wäre es wenn man auch z.B. die Hauptdarsteller abfragen könnte...
Wie schreibt man so eine Funktion?
Ich möchte gerne eine Funktion(en) in PHP schreiben, die die Wertung und die URL für das Cover des Films ausgibt. Diese Infos ollte sich die Funktion http://german.imdb.com holen. Als Eingabewert soll die IMDB Nummer dienen. Super wäre es wenn man auch z.B. die Hauptdarsteller abfragen könnte...
Dazu mußt Du einen HTTP-Client simulieren, der eine POST-Abfrage an den Server macht und aus der Antwort die entsprechenden Daten rausfiltert. Du benötigst eine ganze Reihe Kenntnisse, vom HTTP-Protokoll über Netzwerkfunktionen bis hin zu regulären Ausdrücken bzw. allgemeinen Textfunktionen.
Bevor Du Dich da reinhängst, solltest Du allerdings wissen, daß die IMDb-Daten nicht zur freien Verfügung stehen und Du unter Umständen eine Lizenz zur Weiterverwendung benötigst, siehe http://us.imdb.com/Copyright. Ich würd's mir überlegen, ob ich mich mit Amazon anlege..
Davon abgesehen steht die komplette Datenbank seit jeher zum Download zur Verfügung, unter anderem im Aminet unter http://de.aminet.net/aminet/dirs/misc_imdb.html. Mehr Infos dazu findest Du auf http://us.imdb.com/Help/.
Gruß,
soenk.e
Das Ganze soll ja auch wirklich nur zu privaten Zwecken dienen, von daher würde ich über die Copyrights mal hinweg sehen! Aber kann man das Ganze nich irgendwie einfacher lösen???
Ich hab bereits eine Funktion um die URL des Covers zu bekommen von einer anderen Page gesaugt, aber die tut´s bei mir irgendwie nicht.. Ihr könnt ja mal einen Blick drauf werfen...
<<
<?
function get_imdb_img_url($imdb) {
$link=join("", file("http://us.imdb.com/Title?$imdb"));
preg_match('/<A HREF="/ImageView?u=http%3A//.*.jpg">/', $link, $URL);
//$img_type="image/jpeg";
$URL=substr($URL[0],31,-2);
if($URL=="" or null) {
preg_match('/<A HREF="/ImageView?u=http%3A//.*.gif">/', $link, $URL);
//$img_type="image/gif";
$URL=substr($URL[0],31,-2);
}
if($URL=="" or null) {
preg_match('/<A HREF="/Posters?.*"><IMG SRC="http://.*.jpg.*>/', $link, $URL);
//$img_type="image/jpeg";
$URL=substr($URL[0],44,-58);
}
$url = "http://".$URL;
return $url;
}
function get_image_type($url) {
$base = "image/";
$ext = explode('.',$url);
$ext = $ext[sizeof($ext)-1];
if($ext == "jpg") {
return $base."jpeg";
}
else {
return $base.$ext;
}
}
function get_imdb_img($imdb) {
$url = get_imdb_img_url($imdb);
ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean();
$size = strlen($img);
$data = addslashes(fread(fopen($url,"r"), $size));
return $data;
}
?>
Ich möchte gerne eine Funktion(en) in PHP schreiben,
die die Wertung und die URL für das Cover des Films ausgibt.
Auf http://www.counter-clan.net/imdb/ ist eine class zu finden, die Daten von imdb.com grabbt, ich habe die Entwicklung aber schon längere Zeit nicht mehr verfolgt, daher Angaben ohne Gewähr.