#!/usr/local/bin/php -f
<?php
/// 获取命令行参数
$fileName = $argv[1];
if ( ! is_dir( $fileName ) && ! file_exists( $fileName ) ) {
echo "Usage: ".$argv[0]." [path|file]\n";
exit;
}
$disableFile = "DMO|test_|FileZip|jpgraph|smarty|tourdata|demo_|Frame|socket.php|IDNA2.php|timezone.php|config.db.php|config.php";
$disableFile .= "|main1.php|obj.php|interface.php|hmac.php|php-excel.class.php|cfg.class.php|global.php|gconfig.php|main2.php|sinfo.php";
$disableFile .= "|main.php|index.php|mod_tpl.php|redis.lua|^_";
$disableDir = "cache$|templates$|templates_c$|adodb$|smarty$|mailer$|biz$|test$";
$ext = "\.php$|\.c$|\.h$|\.go$|\.lua$";
if ( is_dir( $fileName ) ) {
getDir( $fileName );
} else {
echoCode( $fileName );
}
function echoCode( $fileName ) {
$fileLines = file( $fileName );
$lineCount = 0;
foreach( $fileLines AS $line ) {
$line = str_replace( "\t", " ", $line );
$tr = trim( $line );
if ( preg_match( "/\\*|^\*|^ {1,}\*|\/\*|\*\/|^ {1,}\/\/|^\/\//", $line ) || $tr === "" ) {
continue;
}
$lineCount++;
$line = str_replace( "\r", "", $line );
$line = str_replace( "\n", "", $line );
echo "".$line."\n";
}
echo "\n";
}
function getDir( $path ) {
global $disableFile, $disableDir, $ext;
$dDirs = dir( $path );
while ( false !== ( $fileDirs = $dDirs->read() ) ) {
$sCodeFile = $path . "/".$fileDirs;
if ( $fileDirs == "." || $fileDirs == ".." || preg_match("/".$disableDir."/", $fileDirs ) ) {
continue;
}
if ( ! is_dir( $sCodeFile ) && ! file_exists( $sCodeFile ) ) {
continue;
}
if ( preg_match( "/".$disableFile."/", $fileDirs ) ||
( ! is_dir( $sCodeFile ) && ! preg_match( "/".$ext."/", $fileDirs ) ) ) {
continue;
}
if ( is_dir( $sCodeFile ) ) {
getDir( $sCodeFile );
continue;
} else {
//echo $sCodeFile."\n";
echo iconv( "UTF-8", "GBK", "文件名: ").$fileDirs."\n";
//echo "文件名: ".$fileDirs."\n";
echoCode( $sCodeFile );
}
}
}
?>
ログイン後にコピー