Jeg har lavet denne, måske kan du bruge den? Hvis du ikke kan, kan du bare afvise:
<?php
function getMovie( $imdb_id )
{
$movie = array();
$url = "
http://imdb.com/title/$imdb_id/"; $cnt = file_get_contents( $url );
$interesting = "/(<h1><strong class=\"title\">.+?<td width=\"171\" align=\"right\">\s+<table)/s";
if ( preg_match( $interesting, $cnt, $m ) )
{
$cnt = $m[1];
$movie['cover'] = '';
if ( preg_match( "/alt=\"cover\" src=\"(.+?)\"/", $cnt, $m ) )
{
$movie['cover'] = $m[1];
}
$movie['picture'] = '';
if ( IMDB_USE_PICTURE_BLOB == 1 && $movie['cover'] != '' )
{
if ( !preg_match( "/npa\.gif$/", $movie['cover'] ) )
{
$movie['picture'] = file_get_contents( $movie['cover'] );
}
}
if ( preg_match( "/class=\"title\">(.+?)<small>\(<a href=\".+?\">(\d+)</", $cnt, $m ) )
{
$movie['title'] = trim( $m[1] );
$movie['year'] = trim( $m[2] );
}
else
{
die( "<b>title/year failed.</b><br>" );
}
$movie['director'] = array();
if ( preg_match( "/Directed by<\/b><br>\s+(.+?)<b class/s", $cnt, $m ) )
{
$m = $m[1];
preg_match_all( "/<a href=\"\/name\/nm(\d+)\/\">(.+?)<\/a>/", $m, $dir );
$n = count( $dir[1] );
for ( $i = 0; $i < $n; $i++ )
{
$movie['director'][] = array(
"name" => $dir[2][$i]
,"id" => $dir[1][$i]
);
}
}
$movie['writer'] = array();
if ( preg_match( "/Writing credits<\/b>\s*(.*?)<\/td>/s", $cnt, $m ) )
{
$m = $m[1];
preg_match_all( "/<a href=\"\/name\/nm(\d+)\/\">(.+?)<\/a>/", $m, $wri );
$n = count( $wri[1] );
for ( $i = 0; $i < $n; $i++ )
{
$movie['writer'][] = array(
"name" => $wri[2][$i]
,"id" => $wri[1][$i]
);
}
}
$movie['genre'] = array();
if ( preg_match( "/Genre:<\/b>(.*?)<br><br>/s", $cnt, $m ) )
{
$m = $m[1];
preg_match_all( "/<a href=\"\/Sections\/Genres\/.*?\/\">(.+?)<\/a>/", $m, $gen );
$n = count( $gen[1] );
for ( $i = 0; $i < $n; $i++ )
{
$movie['genre'][] = $gen[1][$i];
}
}
$movie['tagline'] = '';
if ( preg_match( '/<b class="ch">Tagline:<\/b> (.+?)</s', $cnt, $m ) )
{
$movie['tagline'] = trim( $m[1] );
}
$movie['plot'] = '';
if ( preg_match( '/<b class="ch">Plot (Outline|Summary):<\/b> (.+?)</s', $cnt, $m ) )
{
$movie['plot'] = trim( $m[2] );
}
$movie['comment'] = '';
if ( preg_match( '/<b class="ch">User Comments:<\/b>\s*(.*?)</s', $cnt, $m ) )
{
$movie['comment'] = trim( $m[1] );
}
$movie['rating'] = 0;
$movie['ratedby'] = 0;
if ( preg_match( '/<b>(.+?)\/10<\/b> \((.+?) votes\)/', $cnt, $m ) )
{
$movie['rating'] = $m[1];
$movie['ratedby'] = str_replace( ",", "", $m[2] );
}
$movie['cast'] = array();
if ( preg_match( '/<b class="blackcatheader">(Cast overview|Complete credited cast|Credited cast)(.*?)<\/table>/si', $cnt, $m ) )
{
$m = $m[2];
preg_match_all( "/<a href=\"\/name\/nm(\d+)\/\">(.+?)<\/a>(.*?\.\.\. <\/td><td valign=\"top\">(.*?)<\/td>)?/", $m, $ca );
$n = count( $ca[1] );
for ( $i = 0; $i < $n; $i++ )
{
$movie['cast'][] = array(
"name" => $ca[2][$i]
,"id" => $ca[1][$i]
,"role" => $ca[4][$i]
);
}
}
$movie['aka'] = '';
if ( preg_match( '/<b class="ch">Also Known As:<\/b><br>(.*?)[\(<]/s', $cnt, $m ) )
{
$movie['aka'] = trim( $m[1] );
}
$movie['runtime'] = 0;
if ( preg_match( '/<b class="ch">Runtime:<\/b>.*?(\d+) min\s*<br>/s', $cnt, $m ) )
{
$movie['runtime'] = trim( $m[1] );
}
$movie['id'] = substr( $imdb_id, 2 );
return $movie;
}
else
{
die( "<h3>Damn! Couldn't get the yummy part from IMDB...<br><a href='$url'>$url</a></h3>\n" );
}
}
?>