<?php
// Check for good input
if ($_GET[id] && preg_match('/^tt\d{7}$/'trim($_GET[id])))
// Continue
    
    
$imdb_code trim($_GET[id]);
    
$imdb_url 'http://www.imdb.com/title/' $imdb_code '/episodes';
    
    
// Fetch IMDB page
    
$contents file_get_contents($imdb_url) or die("Error connecting to IMDB!");
    
    
// Get series title for demo display purposes
    
preg_match('/\<title\>([^<]*)\<\/title\>/i'$contents$pagetitle);
    
    
// Regex pattern for episodes
    
$pattern '%<h3>Season (\d{1,2}), Episode (\d{1,2}): <a href="(?:[^"]*)">([^<]*)</a>(?:.*<br>)([^<]*)%i';
    
    
// Array to hold episodes
    
$eps = array();
    
    
// Strip out all episode info from IMDB page
    
preg_match_all($pattern$contents$matches);
    
    
// Build episode array: [season][ep]=title
    
foreach ($matches[0] as $data => $text)
    {
        if (
preg_match($pattern$text$match))
        {
            
$eps[$match[1]][$match[2]] = array('title' => $match[3], 'plot' => trim($match[4]));
        }
    }
    
// Example... To retrieve season 3, episode 9's title: $title = $eps[3][9]['title'];
    
    // Display result for demo
    
echo "<h2>$pagetitle[1]</h2>";
    echo 
"<pre style=\"font-family:monospace;font-size:1.6em\">";
    
print_r($eps);
    echo 
"</pre>";
}
else
// Error
    
echo "<h2>Error. Please enter a valid IMDB series ID#.";
}

?>