|
MovieDB
Auteur: Wim
- 19 september 2007 - 13:52 - Gekeurd door: Stijn
- Hits: 1976 - Aantal punten:
(0 stemmen)
Dit systeem heb ik geschreven om alles op dvd terug te vinden.
Er zit geen admin gedeelte bij aangezien ik dit zelf overbodig vindt.
in de tabel 'dvd' voeg je de naam van de dvd toe, in mijn geval is dat FILM001, FILM002, ...
In de tabel contents voeg je de films toe die op de dvd staan. in het veld dvd zet je het id van de naam van de dvd -dat vindt je terug in de tabel dvd, kolom id-, bij title zet je de titel. Persoonlijk zet ik achter de titel ook het jaartal. In de kolom imdb zet je de VOLLEDIGE link naar de pagina op IMDB (in deze vorm: http://www.imdb.com/title/tt0317740/)
Op de index zullen alle films weergegeven worden. Er kan gezocht worden op titel, en de informatie wordt via de imdb parser van Bernd Essl uitgelezen.
Een voorbeeldje vindt je op http://www.gdx.be/moviedb
Het icoontje van de search-knop (wat met een image werkt) vindt je op http://www.gdx.be/moviedb/searchicon.png
Meer info over de klasse vindt je hier: http://codein.at/projects/imdb_parser-class/
Wim Mariën
//edit 8/11/2007 (v1.1)
- Error handling toegevoegd
- kleine wijziging aan de sql tabellen (met name waar de primary key's starten)
- wijziging aan de klasse om zo deftig gebruik te maken van het object en minder code te hebben :-)
- configuratiearray voor de MySQL verbinding toegevoegd
|
| Code: |
CREATE TABLE `contents` (
`id` int(10) NOT NULL auto_increment,
`dvd` int(5) NOT NULL default '0',
`title` varchar(100) NOT NULL default '',
`imdb` varchar(36) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
CREATE TABLE `dvd` (
`id` int(5) NOT NULL auto_increment,
`label` varchar(10) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `label` (`label`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
CREATE TABLE `contents` ( `id` int(10) NOT NULL AUTO_INCREMENT, `dvd` int(5) NOT NULL DEFAULT '0', `title` varchar(100) NOT NULL DEFAULT '', `imdb` varchar(36) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; CREATE TABLE `dvd` ( `id` int(5) NOT NULL AUTO_INCREMENT, `label` varchar(10) NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE KEY `label` (`label`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
<?php
$_LOGIN = array( // voor het admin gedeelte
'username' => '',
'password' => ''
);
$_SQL = array(
'host' => '127.0.0.1',
'user' => '',
'passwd' => '',
'db' => ''
);
//deze 3 regeltjes laten doen
define ('DEBUG', 2);
define ('ERRMESSAGE', 1);
define ('SILENT', 0);
define ('ERRORREPORTING', DEBUG); // DEBUG (errormessage + file + line), ERRMESSAGE (only errormessage) or SILENT (standard error message)
// base64 codering van het zoekicoontje, om externe bestanden te omzeilen :-)
$searchicon = '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';
if($_GET['view'] == 'searchicon') // voor het zoekicoontje
{
die(base64_decode($searchicon));
}
try{
if(!($sqlCon = mysql_connect($_SQL['host'], $_SQL['user'], $_SQL['passwd'])))
throw new exception('We couldn\'t create a database connection!', 000);
if(!mysql_select_db($_SQL['db'], $sqlCon))
throw new exception('MySQL error! Couldn\'t find the db!', 001);
unset ($_SQL); // hebben we niet meer nodig, en deze gegevens zijn te gevoelig!
}
catch (exception $e)
{
error($e);
}
//////// real code starts here
function error($e)
{
switch (ERRORREPORTING)
{
case ERRMESSAGE:
$str = "<font color=\"red\">".$e->getMessage()." (".$e->getCode().")</font>";
break;
case DEBUG:
$str = "<font color=\"red\">".$e->getMessage()." (".$e->getCode().")</font><br /><br /><em>(in file <strong>".$e->getFile()."</strong> on line <strong>".$e->getLine()."</strong>)</em>";
case SILENT:
$str = "We won't tell you where or why<br />\nLazy programmers";
break;
}
die("<h1>An error has occured!</h1><br /><br />".$str);
}
if(is_numeric($_GET['movie']) && isset($_GET['movie']))
{
require_once('imdb.class.php');
try
{
$query = mysql_query('SELECT contents.imdb AS imdb, dvd.label AS dvd '
.'FROM contents '
.'INNER JOIN dvd '
.'ON (dvd.id = contents.dvd) '
.'WHERE contents.id = \''.$_GET['movie'].'\' '
.'LIMIT 1') or die(mysql_error());
if(mysql_num_rows($query) != 1)
{
throw new Exception('Movie not found!', 100);
}
if(!($movie = mysql_fetch_object($query)))
throw new Exception('Unable to recieve the movie records', 101);
if(!($imdb = new IMDB_Parser($movie->imdb)))
throw new Exception('Unable to initialize the IMDB-information handler', 400);
print ('<table width="760" border="0" cellspacing="0" cellpadding="0">');
print ('<tr>');
print ('<td><strong>DVD</strong></td>');
print ('<td><strong>'.$movie->dvd.'</strong></td>');
print ('</tr>');
print ('<tr>');
print ('<td><strong>Title</strong></td>');
print ('<td>'.$imdb->getMovieTitle().'</td>');
print ('</tr>');
print ('<tr>');
print ('<td><strong>Language</strong></td>');
print ('<td>'.implode(', ', $imdb->getMovieLanguage()).'</td>');
print ('</tr>');
print ('<tr>');
print ('<td><strong>Tagline</strong></td>');
print ('<td>'.$imdb->getMovieTagline().'</td>');
print ('</tr>');
print ('<tr>');
print ('<td><strong>Plot</strong></td>');
print ('<td>'.$imdb->getMoviePlot().'</td>');
print ('</tr>');
print ('<tr>');
print ('<td><strong>IMDB Rating</strong></td>');
print ('<td>'.$imdb->getMovieRating().'</td>');
print ('</tr>');
print ('<tr>');
print ('<td><strong>Country</strong></td>');
print ('<td>'.implode(', ', $imdb->getMovieCountry()).'</td>');
print ('</tr>');
print ('<tr>');
print ('<td><strong>Runtime</strong></td>');
print ('<td>'.$imdb->getMovieRuntime().'</td>');
print ('</tr>');
print ('<tr>');
print ('<td> </td>');
print ('<td> </td>');
print ('</tr>');
print ('<tr>');
print ('<td> </td>');
print ('<td><a href="'.$movie->imdb.'" target="_blank"><strong>IMDB Link</strong></a></td>');
print ('</tr>');
print ('<tr>');
print ('<td> </td>');
print ('<td> </td>');
print ('</tr>');
print ('<tr>');
print ('<td> </td>');
print ('<td> </td>');
print ('</tr>');
print ('<tr>');
print ('<td> </td>');
print ('<td> </td>');
print ('</tr>');
print ('<tr>');
print ('<td> </td>');
print ('<td><em>Info powered by <a href="http://www.imdb.com/" target="_blank">IMDB</a></em></td>');
print ('</tr>');
print ('</table>');
}
catch (Exception $e)
{
// movie details
error($e);
}
}
elseif ($_GET['action'] == 'add')
{
try
{
if($_SERVER['PHP_AUTH_USER'] != $_LOGIN['username'] || $_SERVER['PHP_AUTH_PW'] != $_LOGIN['password'])
{
header("WWW-Authenticate: Basic realm=\"MovieDB ADMIN\"");
header("HTTP/1.0 401 Unauthorized");
throw new exception ('ACCESS DENIED!', 69);
}
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['adddvd']))
{
if(mysql_query('INSERT INTO dvd (label) VALUES (\''.mysql_real_escape_string($_POST['dvdname']).'\')'))
print ('dvd added<br /><br />');
else
throw new exception('I was not able to add your dvd to the collection!', 300);
}
elseif($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['addmovie']))
{
if(!mysql_query('INSERT INTO contents (dvd,title,imdb) VALUES (\''.mysql_real_escape_string($_POST['dvd']).'\', \''.mysql_real_escape_string($_POST['title']).'\', \''.mysql_real_escape_string($_POST['imdb']).'\')'))
throw new exception('I was not able to add this movie to the database!', 301);
else
print ('film toegevoegd!');
}
print ('<strong>ADD DVD:</strong><form method="post"><input type="text" name="dvdname" /><input type="submit" name="adddvd" value="Add DVD!" /></form><br /><br />');
print ('<strong>ADD MOVIE:</strong><form method="post">Title: <input type="text" name="title" /><br />IMDB:<input type="text" name="imdb" /><br /><select name="dvd">');
if(!($query = mysql_query('SELECT id,label FROM dvd')))
throw new exception ('I was not able to select your DVD-index!', 200);
if(!($n = mysql_num_rows($query)))
throw new exception ('I was not able to retrieve the database info', 201);
$i = 1;
while ($dvd = mysql_fetch_object($query))
{
$selected = (($i++ == $n) ? ' selected' : NULL);
print ('<option value="'.$dvd->id.'"'.$selected.'>'.$dvd->label.'</option>');
}
print('</select><br /><input type="submit" name="addmovie" value="Add Movie!" /></form>');
}
catch (Exception $e)
{
// admin::add
error($e);
}
}
else
{
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$search = 'WHERE contents.title LIKE \'%'.mysql_real_escape_string($_POST['searchstring']).'%\' ';
$noResults = 'No movies found!';
}
else
{
$search = NULL;
$noResults = 'No movies added yet!';
}
// list ALL
$query = 'SELECT contents.id AS id, contents.title AS title, contents.imdb AS imdb, dvd.label AS dvd '
.'FROM contents '
.'INNER JOIN dvd '
.'ON (dvd.id = contents.dvd) '
.$search // if we've hitted the search button, the WHERE-clausule will be added!
.'ORDER BY dvd,title ASC';
if(!($query = mysql_query($query)))
throw new exception ('Unable to search the database for matching records!');
if(mysql_num_rows($query) < 1)
{
throw new exception ($noResults);
}
elseif(mysql_num_rows($query) == 1)
{
if(!($movie = mysql_fetch_object($query)))
throw new exception('Unable to complete your search command!');
header('location: ?movie='.$movie->id);
}
print ('<table width="100%" border="0" cellspacing="0" cellpadding="0">');
print ('<tr>');
print ('<td><strong>Titel</strong></td>');
print ('<td><strong>DVD</strong></td>');
print ('<td><strong>IMDB</strong></td>');
print ('</tr>');
while ($movie = mysql_fetch_object($query))
{
print ('<tr>');
print ('<td><a href="?movie='.$movie->id.'">[INFO]</a> '.$movie->title.'</td>');
print ('<td>'.$movie->dvd.'</td>');
print ('<td><a href="'.$movie->imdb.'" target="_blank">'.$movie->imdb.'</a></td>');
print ('</tr>');
$i++;
}
print ('</table>');
print ('<br /><br />'.$i.' movies in database');
}
print ('<br /><br /><form method="post"><input type="text" name="searchstring" /><input type="image" src="?view=searchicon" value="search" alt="Search the database!"></form>');
<?php $_LOGIN = array( // voor het admin gedeelte 'username' => '', 'password' => '' ); 'host' => '127.0.0.1', 'user' => '', 'passwd' => '', 'db' => '' ); //deze 3 regeltjes laten doen define ('ERRORREPORTING', DEBUG ); // DEBUG (errormessage + file + line), ERRMESSAGE (only errormessage) or SILENT (standard error message) // base64 codering van het zoekicoontje, om externe bestanden te omzeilen :-) $searchicon = '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'; if($_GET['view'] == 'searchicon') // voor het zoekicoontje { } try{ if(!($sqlCon = mysql_connect($_SQL['host'], $_SQL['user'], $_SQL['passwd']))) throw new exception('We couldn\'t create a database connection!', 000); if(!mysql_select_db($_SQL['db'], $sqlCon)) throw new exception('MySQL error ! Couldn\ 't find the db!', 001); unset ($_SQL); // hebben we niet meer nodig, en deze gegevens zijn te gevoelig! } catch (exception $e) { error($e); } //////// real code starts here function error($e) { switch (ERRORREPORTING) { case ERRMESSAGE: $str = "<font color=\"red\">".$e->getMessage()." (".$e->getCode().")</font>"; break; case DEBUG: $str = "<font color=\"red\">".$e->getMessage()." (".$e->getCode().")</font><br /><br /><em>(in file <strong>".$e->getFile()."</strong> on line <strong>".$e->getLine()."</strong>)</em>"; case SILENT: $str = "We won't tell you where or why<br />\nLazy programmers"; break; } die("<h1>An error has occured!</h1><br /><br />".$str); } { require_once('imdb.class.php'); try { $query = mysql_query('SELECT contents.imdb AS imdb, dvd.label AS dvd ' .'FROM contents ' .'INNER JOIN dvd ' .'ON (dvd.id = contents.dvd) ' .'WHERE contents.id = \''.$_GET['movie'].'\' ' { throw new Exception('Movie not found!', 100); } throw new Exception('Unable to recieve the movie records', 101); if(!($imdb = new IMDB_Parser($movie->imdb))) throw new Exception('Unable to initialize the IMDB-information handler', 400); print ('<table width="760" border="0" cellspacing="0" cellpadding="0">'); print ('<td><strong>DVD</strong></td>'); print ('<td><strong>'.$movie->dvd.'</strong></td>'); print ('<td><strong>Title</strong></td>'); print ('<td>'.$imdb->getMovieTitle().'</td>'); print ('<td><strong>Language</strong></td>'); print ('<td>'.implode(', ', $imdb->getMovieLanguage()).'</td>'); print ('<td><strong>Tagline</strong></td>'); print ('<td>'.$imdb->getMovieTagline().'</td>'); print ('<td><strong>Plot</strong></td>'); print ('<td>'.$imdb->getMoviePlot().'</td>'); print ('<td><strong>IMDB Rating</strong></td>'); print ('<td>'.$imdb->getMovieRating().'</td>'); print ('<td><strong>Country</strong></td>'); print ('<td>'.implode(', ', $imdb->getMovieCountry()).'</td>'); print ('<td><strong>Runtime</strong></td>'); print ('<td>'.$imdb->getMovieRuntime().'</td>'); print ('<td> </td>'); print ('<td> </td>'); print ('<td> </td>'); print ('<td><a href="'.$movie->imdb.'" target="_blank"><strong>IMDB Link</strong></a></td>'); print ('<td> </td>'); print ('<td> </td>'); print ('<td> </td>'); print ('<td> </td>'); print ('<td> </td>'); print ('<td> </td>'); print ('<td> </td>'); print ('<td><em>Info powered by <a href="http://www.imdb.com/" target="_blank">IMDB</a></em></td>'); } catch (Exception $e) { // movie details error($e); } } elseif ($_GET['action'] == 'add') { try { if($_SERVER['PHP_AUTH_USER'] != $_LOGIN['username'] || $_SERVER['PHP_AUTH_PW'] != $_LOGIN['password']) { header("WWW-Authenticate: Basic realm=\"MovieDB ADMIN\""); header("HTTP/1.0 401 Unauthorized"); throw new exception ('ACCESS DENIED!', 69); } if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['adddvd'])) { if(mysql_query('INSERT INTO dvd (label) VALUES (\''.mysql_real_escape_string($_POST['dvdname ']).'\ ')')) print ('dvd added<br /><br />'); else throw new exception('I was not able to add your dvd to the collection!', 300); } elseif($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['addmovie'])) { if(!mysql_query('INSERT INTO contents (dvd,title,imdb) VALUES (\''.mysql_real_escape_string($_POST['dvd ']).'\ ', \''.mysql_real_escape_string($_POST['title ']).'\ ', \''.mysql_real_escape_string($_POST['imdb ']).'\ ')')) throw new exception('I was not able to add this movie to the database!', 301); else print ('film toegevoegd!'); } print ('<strong>ADD DVD:</strong><form method="post"><input type="text" name="dvdname" /><input type="submit" name="adddvd" value="Add DVD!" /></form><br /><br />'); print ('<strong>ADD MOVIE:</strong><form method="post">Title: <input type="text" name="title" /><br />IMDB:<input type="text" name="imdb" /><br /><select name="dvd">'); if(!($query = mysql_query('SELECT id,label FROM dvd'))) throw new exception ('I was not able to select your DVD-index!', 200); throw new exception ('I was not able to retrieve the database info', 201); $i = 1; { $selected = (($i++ == $n) ? ' selected' : NULL); print ('<option value="'.$dvd->id.'"'.$selected.'>'.$dvd->label.'</option>'); } print('</select><br /><input type="submit" name="addmovie" value="Add Movie!" /></form>'); } catch (Exception $e) { // admin::add error($e); } } else { if ($_SERVER['REQUEST_METHOD'] == 'POST') { $search = 'WHERE contents.title LIKE \'%'.mysql_real_escape_string($_POST['searchstring']).'%\' '; $noResults = 'No movies found!'; } else { $search = NULL; $noResults = 'No movies added yet!'; } // list ALL $query = 'SELECT contents.id AS id, contents.title AS title, contents.imdb AS imdb, dvd.label AS dvd ' .'FROM contents ' .'INNER JOIN dvd ' .'ON (dvd.id = contents.dvd) ' .$search // if we've hitted the search button, the WHERE-clausule will be added! .'ORDER BY dvd,title ASC'; throw new exception ('Unable to search the database for matching records!'); { throw new exception ($noResults); } { throw new exception('Unable to complete your search command!'); header('location: ?movie='.$movie->id); } print ('<table width="100%" border="0" cellspacing="0" cellpadding="0">'); print ('<td><strong>Titel</strong></td>'); print ('<td><strong>DVD</strong></td>'); print ('<td><strong>IMDB</strong></td>'); { print ('<td><a href="?movie='.$movie->id.'">[INFO]</a> '.$movie->title.'</td>'); print ('<td>'.$movie->dvd.'</td>'); print ('<td><a href="'.$movie->imdb.'" target="_blank">'.$movie->imdb.'</a></td>'); $i++; } print ('<br /><br />'.$i.' movies in database'); } print ('<br /><br /><form method="post"><input type="text" name="searchstring" /><input type="image" src="?view=searchicon" value="search" alt="Search the database!"></form>');
imdb.class.php
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* class.imdb_parser.php (php4)
* Parse information of any film - need a fetched imdb.com video-detail-site
* @author Bernd Essl <bernd@codein.at>
* @copyright Bernd Essl <bernd@codein.at>
* @license license http://gnu.org/copyleft/gpl.html GNU GPL
* @link http://codein.at/
*/
class IMDB_Parser
{
var $imdbpage = NULL;
function IMDB_Parser ($imdburl) // php 4
{
if(function_exists('file_get_contents'))
{
$this->imdbpage = file_get_contents($imdburl);
}
else
{
$f = fopen($imdburl, 'r');
while (!feof($f))
$this->imdbpage .= fread($f, 4096); //4KiB
fclose($f);
}
}
function getMovieActors($name_and_id=False)
{
if (preg_match('/<table class="cast">(.+)<\/table>/', $this->imdbpage, $hit))
{
if ($name_and_id === True)
{
#name and id
if (preg_match_all('/<a href="\/name\/(nm\d{1,8})\/">([^<]+)<\/a>/',$hit[0],$results, PREG_PATTERN_ORDER))
{
return $results;
}
else
{
return False;
}
}
else
{
#only name, old version
if (preg_match_all('/<a href="\/name\/nm\d{1,8}\/">([^<]+)<\/a>/',$hit[0],$results, PREG_PATTERN_ORDER))
{
return $results[1];
}
else
{
return False;
}
}
}
else
{
return False;
}
}
function getMovieDirectedBy($all_directors=False)
{
if ($all_directors === True)
{
return False;
}
else
{
if (preg_match('/Director:<\/h5>.?<a href="\/name\/[a-z0-9]+\/">(.+)<\/a>/sU', $this->imdbpage, $hit))
{
return $hit[1];
}
else
{
return False;
}
}
}
function getMovieColor()
{
if (preg_match('/<a href="\/List\?color-info=.+">(.+)<\/a>/', $this->imdbpage, $hit))
{
return $hit[1];
}
else
{
return False;
}
}
function getMovieCountry()
{
if (preg_match_all('/<a href="\/Sections\/Countries\/([a-z]+)\/">/i',$this->imdbpage,$results, PREG_PATTERN_ORDER))
{
return $results[1];
}
else
{
return False;
}
}
function getMovieLanguage()
{
if (preg_match_all('/<a href="\/Sections\/Languages\/([a-z]+)\/">/i',$this->imdbpage,$results, PREG_PATTERN_ORDER))
{
return $results[1];
}
else
{
return False;
}
}
function getMovieRating()
{
if (preg_match('/<b>([0-9]{1,2}\.[0-9]{1,2}\/10)<\/b>/', $this->imdbpage, $hit))
{
return $hit[1];
}
else
{
return False;
}
}
function getMovieGenres()
{
if (preg_match_all('/\/Sections\/Genres\/(.+?)\//', $this->imdbpage, $hit, PREG_PATTERN_ORDER))
{
return $hit[1];
}
else
{
return False;
}
}
function getMoviePlot()
{
//sometimes "Plot Outline" or "Plot Summary"
if (preg_match('/\/h5>([^<]*)\<a class="tn15more inline" href="\/rg\/title-tease\/plotsummary/', $this->imdbpage, $hit))
{
return $hit[1];
}
else
{
return False;
}
}
function getMovieTagline()
{
if (preg_match('/h5>([^<]*)\<a class="tn15more inline" href="\/rg\/title-tease\/taglines/', $this->imdbpage, $hit))
{
return $hit[1];
}
else
{
return False;
}
}
function getMovieTitle()
{
if (preg_match('/\<title\>([^"]*)\<\/title\>/', $this->imdbpage, $hit))
{
return $hit[1];
}
else
{
return False;
}
}
function getMoviePictureHtml()
{
if (preg_match('/<a name="poster".+title=".+">(.+)<\/a>/', $this->imdbpage, $hit))
{
return str_replace('ec.', '', $hit[1]);
}
else
{
return False;
}
}
function getMoviePicture()
{
if (preg_match('/ src="([^"]*)/', $this->getMoviePictureHtml($this->imdbpage), $hit))
{
return $hit[1];
}
else
{
return False;
}
}
function getMovieYear()
{
if (preg_match('/\/Sections\/Years\/([^"]*)/', $this->imdbpage, $hit))
{
return $hit[1];
}
else
{
return False;
}
}
function getMovieRuntime()
{
#contributed by Guvenc KAPLAN
if (preg_match('/Runtime:<\/h5>([^<]+)<\/div>/', $this->imdbpage, $hit))
{
return $hit[1];
}
else
{
return False;
}
}
function getMovieStars()
{
if (preg_match('/<b>([0-9]{1,2}\.[0-9]{1,2})\/10<\/b>/', $this->imdbpage, $hit))
{
return $hit[1];
}
else
{
return False;
}
}
function getMovieAka()
{
if (preg_match('/Also Known As:<\/h5>(.+)<br>/', $this->imdbpage, $hit))
{
return $hit[1];
}
else
{
return False;
}
}
}
<?php /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ /** * class.imdb_parser.php (php4) * Parse information of any film - need a fetched imdb.com video-detail-site * @author Bernd Essl <bernd@codein.at> * @copyright Bernd Essl <bernd@codein.at> * @license license http://gnu.org/copyleft/gpl.html GNU GPL * @link http://codein.at/ */ class IMDB_Parser { var $imdbpage = NULL; function IMDB_Parser ($imdburl) // php 4 { { } else { $f = fopen($imdburl, 'r'); $this->imdbpage .= fread($f, 4096); //4KiB } } function getMovieActors($name_and_id=False) { if (preg_match('/<table class="cast">(.+)<\/table>/', $this->imdbpage, $hit)) { if ($name_and_id === True) { #name and id if (preg_match_all('/<a href="\/name\/(nm\d{1,8})\/">([^<]+)<\/a>/',$hit[0],$results, PREG_PATTERN_ORDER )) { return $results; } else { return False; } } else { #only name, old version if (preg_match_all('/<a href="\/name\/nm\d{1,8}\/">([^<]+)<\/a>/',$hit[0],$results, PREG_PATTERN_ORDER )) { return $results[1]; } else { return False; } } } else { return False; } } function getMovieDirectedBy($all_directors=False) { if ($all_directors === True) { return False; } else { if (preg_match('/Director:<\/h5>.?<a href="\/name\/[a-z0-9]+\/">(.+)<\/a>/sU', $this->imdbpage, $hit)) { return $hit[1]; } else { return False; } } } function getMovieColor() { if (preg_match('/<a href="\/List\?color-info=.+">(.+)<\/a>/', $this->imdbpage, $hit)) { return $hit[1]; } else { return False; } } function getMovieCountry() { if (preg_match_all('/<a href="\/Sections\/Countries\/([a-z]+)\/">/i',$this->imdbpage,$results, PREG_PATTERN_ORDER )) { return $results[1]; } else { return False; } } function getMovieLanguage() { if (preg_match_all('/<a href="\/Sections\/Languages\/([a-z]+)\/">/i',$this->imdbpage,$results, PREG_PATTERN_ORDER )) { return $results[1]; } else { return False; } } function getMovieRating() { if (preg_match('/<b>([0-9]{1,2}\.[0-9]{1,2}\/10)<\/b>/', $this->imdbpage, $hit)) { return $hit[1]; } else { return False; } } function getMovieGenres() { if (preg_match_all('/\/Sections\/Genres\/(.+?)\//', $this->imdbpage, $hit, PREG_PATTERN_ORDER )) { return $hit[1]; } else { return False; } } function getMoviePlot() { //sometimes "Plot Outline" or "Plot Summary" if (preg_match('/\/h5>([^<]*)\<a class="tn15more inline" href="\/rg\/title-tease\/plotsummary/', $this->imdbpage, $hit)) { return $hit[1]; } else { return False; } } function getMovieTagline() { if (preg_match('/h5>([^<]*)\<a class="tn15more inline" href="\/rg\/title-tease\/taglines/', $this->imdbpage, $hit)) { return $hit[1]; } else { return False; } } function getMovieTitle() { if (preg_match('/\<title\>([^"]*)\<\/title\>/', $this->imdbpage, $hit)) { return $hit[1]; } else { return False; } } function getMoviePictureHtml() { if (preg_match('/<a name="poster".+title=".+">(.+)<\/a>/', $this->imdbpage, $hit)) { } else { return False; } } function getMoviePicture() { if (preg_match('/ src="([^"]*)/', $this->getMoviePictureHtml($this->imdbpage), $hit)) { return $hit[1]; } else { return False; } } function getMovieYear() { if (preg_match('/\/Sections\/Years\/([^"]*)/', $this->imdbpage, $hit)) { return $hit[1]; } else { return False; } } function getMovieRuntime() { #contributed by Guvenc KAPLAN if (preg_match('/Runtime:<\/h5>([^<]+)<\/div>/', $this->imdbpage, $hit)) { return $hit[1]; } else { return False; } } function getMovieStars() { if (preg_match('/<b>([0-9]{1,2}\.[0-9]{1,2})\/10<\/b>/', $this->imdbpage, $hit)) { return $hit[1]; } else { return False; } } function getMovieAka() { if (preg_match('/Also Known As:<\/h5>(.+)<br>/', $this->imdbpage, $hit)) { return $hit[1]; } else { return False; } } }
Download code (.txt)
|
|
|
Stemmen |
| Niet ingelogd |
|