PHP Classes
elePHPant
Icontem

File: class.imdb_parser.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Bernhard Essl  >  IMDB Parser  >  class.imdb_parser.php  >  Download  
File: class.imdb_parser.php
Role: Class source
Content type: text/plain
Description: class IMDB_Parser
Class: IMDB Parser
Extract movie information from IMDB site pages
Author: By
Last change: up
Date: 3 years ago
Size: 7,562 bytes
 

Contents

Class file image Download
<?php

/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */


class IMDB_Parser
{

   
    function
getMovieActors($imdb_website, $name_and_id=False)
    {
        if (
preg_match('/<table class="cast">(.+)<\/table>/', $imdb_website, $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($imdb_website, $all_directors=False)
    {
        if (
$all_directors === True)
        {
            return
False;
        }
        else
        {
            if (
preg_match('/Directors?:<\/h5>.?<a href="\/name\/[a-z0-9]+\/">(.+)<\/a>/sU', $imdb_website, $hit))
            {
                return
$hit[1];
            }
            else
            {
                return
False;
            }
        }
    }
   
   
    function
getMovieColor($imdb_website)
    {
        if (
preg_match('/<a href="\/List\?color-info.+>([^<]+)<\/a>/i',$imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }
   
   
    function
getMovieCountry($imdb_website)
    {
        if (
preg_match_all('/<a href="\/Sections\/Countries\/([a-z]+)\/">/i',$imdb_website,$results, PREG_PATTERN_ORDER))
        {
            return
$results[1];
        }
        else
        {
            return
False;
        }
    }
   
   
    function
getMovieLanguage($imdb_website)
    {
        if (
preg_match_all('/<a href="\/Sections\/Languages\/([a-z]+)\/">/i',$imdb_website,$results, PREG_PATTERN_ORDER))
        {
            return
$results[1];
        }
        else
        {
            return
False;
        }
    }
   
   
    function
getMovieRating($imdb_website)
    {
        if (
preg_match('/<b>([0-9]{1,2}\.[0-9]{1,2}\/10)<\/b>/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }
   
   
    function
getMovieGenres($imdb_website)
    {
        if (
preg_match_all('/\/Sections\/Genres\/(.+?)\//', $imdb_website, $hit, PREG_PATTERN_ORDER))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }
   
   
    function
getMoviePlot($imdb_website)
    {
        if (
preg_match('/Plot:<\/h5>([^<]+)</', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }
   
   
    function
getMovieTagline($imdb_website)
    {
        if (
preg_match('/Tagline:<\/h5>([^<]+)</', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }
   
   
    function
getMovieTitle($imdb_website)
    {
        if (
preg_match('/\<title\>([^"]+)\<\/title\>/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }
   
   
    function
getMoviePictureHtml($imdb_website)
    {
        if (
preg_match('/<a name="poster".+title=".+">(.+)<\/a>/', $imdb_website, $hit))
        {
            return
str_replace('ec.', '', $hit[1]);
        }
        else
        {
            return
False;
        }
    }
   
   
    function
getMoviePicture($imdb_website)
    {
        if (
preg_match('/ src="([^"]+)/', $this->getMoviePictureHtml($imdb_website), $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }


    function
getMovieYear($imdb_website)
    {
        if (
preg_match('/\/Sections\/Years\/([^"]+)/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }

   
    function
getMovieRuntime($imdb_website)
    {
       
#contributed by Guvenc KAPLAN
       
if (preg_match('/Runtime:<\/h5>([^<]+)<\/div>/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }

   
    function
getMovieStars($imdb_website)
    {
        if (
preg_match('/<b>([0-9]{1,2}\.[0-9]{1,2})\/10<\/b>/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }


    function
getMovieAka($imdb_website)
    {
        if (
preg_match('/Also Known As:<\/h5>([^<]+)<br>/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }


    function
getMovieAwards($imdb_website)
    {
       
#contributed by D3FiANC3
       
if (preg_match('/Awards:<\/h5>([^<]+)<a class/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }


    function
getMovieVotes($imdb_website)
    {
       
#contributed by D3FiANC3
       
if (preg_match('/\<small\>\(\<a href="ratings"\>([^<]+)\<\/a\>\)\<\/small\>/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }


    function
getMovieMPAA($imdb_website)
    {
       
#contributed by Edward Husar
       
if (preg_match('/MPAA<\/a>:<\/h5>([^<]+)<\/div>/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;

        }
    }


    function
getMovieAspectRatio($imdb_website)
    {
        if (
preg_match('/<h5>Aspect Ratio:<\/h5>([^<]+)<a class/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;

        }
    }


    function
getMovieSoundMix($imdb_website)
    {
        if (
preg_match('/<a href="\/List\?sound-mix.+>([^<]+)<\/a>/i',$imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;

        }
    }


    function
getMovieReleaseDate($imdb_website)
    {
       
#contributed by Edward Husar
       
if (preg_match('/Release Date:<\/h5>([^<]+)<a class/', $imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }


    function
getMovieCompany($imdb_website)
    {
        if (
preg_match('/<a href="\/company.+>([^<]+)<\/a>/i',$imdb_website, $hit))
        {
            return
$hit[1];
        }
        else
        {
            return
False;
        }
    }


}
?>