1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
<?php
function scan_dir($dir) {
if (!is_dir($dir)) return;
foreach (glob("$dir/*") as $file) {
if (is_dir($file)) {
if (basename($file) != "CVS") {
scan_dir($file);
}
} else if (fnmatch("*.h", $file)) {
scan_file($file);
}
}
}
function scan_file($file) {
$flag = false;
foreach (file($file) as $nr => $line) {
if (ereg("^[[:space:]]*BEGIN_EXTERN_C", $line)) {
# echo "$file:".($nr+1)." $line";
$flag = true;
} else if (ereg("^[[:space:]]*END_EXTERN_C", $line)) {
# echo "$file:".($nr+1)." $line";
$flag = false;
} else if ( (ereg("^[[:space:]]*PHPAPI[[:space:]]*", $line))
||(ereg("^[[:space:]]*ZEND_API[[:space:]]*", $line))) {
if (strstr($line,"(")) {
if (!$flag) echo "$file:".($nr+1)." $line";
}
}
}
}
array_shift($_SERVER["argv"]);
if (count($_SERVER["argv"])) {
foreach ($_SERVER["argv"] as $dir) {
scan_dir($dir);
}
} else {
scan_dir(".");
}
?>
|