My fellow web geeks might find this script, php-check download home on the range movie , useful. It recursively scans a directory checking PHP files for syntax errors.
Just copy it somewhere in your path (like /usr/local/bin) and chmod it to 755. 
I wrote the script because I edit PHP using Notepad++, so it’s easy for small typos to enter my scripts. I needed a quick way to scan a directory after uploading revised files.
I wrote it in PHP so that those who need it will also know how to customize it.
[php]
#!/usr/bin/php
 ?php
// php-check version 1.0
// recursively scans a directory for .php files and runs php ‑l on
// them (php ‑l checks for PHP syntax errors)
// revisions at http://glenandpaula.com/wordpress/archives/2007/10/31/scanning-a-directory-for-php-errors/
if (php_sapi_name()!=‘cli’) {
    die(“This utility can only be run from the command line.\n”);
}
$counter=0;
$errors=false;
function scan_dir($dir) {
    $counter=0;
    $dh=opendir($dir);
    while ($file=readdir($dh)) {
        if ($file==’.’ || $file==’..’) continue;
        if (is_dir($dir.’/’.$file)) {
            $counter+=scan_dir($dir.’/’.$file);
        } else {
               if (substr($file, strlen($file) — 4) == ‘.php’) {
                        $counter++;
                    $output=shell_exec(“/usr/bin/php ‑l $dir/$file 2>&1”);
                    if (substr($output,0,2)!=‘No’) { // skips the “No syntax errors in …” message
                        $errors=true;
                        echo $output;
                    }
               }
        }
    }
    return $counter;
}
if ($argc!=2) {
    die(“Usage: php-check dirname (usually php-check .)\n”);
}
if (!is_dir($argv[1])) {
    die(“Argument must be a directory. The most common usage is php-check .\n”);
}
$counter=scan_dir($argv[1]);
echo “$counter files checked\n”;
exit($errors);
?>
[/php]
This is a quick and dirty script — there are probably some bugs in it. User beware.
If you find it helpful, you might also want to check out scripts like PHP CodeSniffer
2,780 thoughts on “Scanning a Directory For PHP Errors”