<?php
/**
* @author Administrator
*
*/
class TestGenerate {
public static $appFolder = \"\";
public static $ignoreFilePaths = array (
\"xxxx/xxx.php\"
);
public static function start() {
$AppPath = \"E:\\\\myApp\";
TestGenerate::$appFolder = $AppPath;
$destManifestPath = \"E:\\\\temp2\\\\dest.md5.txt\";
// dest file handle
$manifestHandle = fopen ( $destManifestPath, \"w+\" );
// write header
TestGenerate::writeMaifestHeader ( $manifestHandle );
// write md5
TestGenerate::traverse ( $AppPath, $manifestHandle );
// write footer
TestGenerate::writeMaifestFooter ( $manifestHandle );
// close file
fclose ( $manifestHandle );
}
/**
* 遍历应用根目录下的文件,并生成对应的文件长度及md5信息
*
* @param unknown $AppPath
* 应用根目录,如:xxx/xxx/analytics
* @param string $destManifestPath
* 生成的manifest文件存放位置的文件句柄
*/
public static function traverse($AppPath, $manifestHandle) {
if (! file_exists ( $AppPath )) {
printf ( $AppPath . \" does not exist!\" );
return;
}
if (! is_dir ( $AppPath )) {
printf ( $AppPath . \" is not a directory!\" );
return;
}
if (! ($dh = opendir ( $AppPath ))) {
printf ( \"Failure while read diectory!\" );
return;
}
// read files
while ( ($file = readdir ( $dh )) != false ) {
$subDir = $AppPath . DIRECTORY_SEPARATOR . $file;
if ($file == \".\" || $file == \"..\") {
continue;
} else if (is_dir ( $subDir )) {
// rescure
TestGenerate::traverse ( $subDir, $manifestHandle );
} else {
// Sub is a file.
TestGenerate::writeOneFieToManifest ( $subDir, $manifestHandle );
}
}
// close dir
closedir ( $dh );
}
/**
* 写一个文件的md5信息到文件中
*
* @param unknown $filePath
* @param unknown $fileHandle
*/
public static function writeOneFieToManifest($filePath, $fileHandle) {
if (! file_exists ( $filePath )) {
continue;
}
$relativePath = str_replace ( TestGenerate::$appFolder . DIRECTORY_SEPARATOR, \'\', $filePath );
$relativePath = str_replace ( \"\\\\\", \"/\", $relativePath );
// ignore tmp directory
if (strpos ( $relativePath, \"tmp/\" ) === 0) {
return;
}
$fileSize = filesize ( $filePath );
$fileMd5 = @md5_file ( $filePath );
$content = \"\\t\\t\";
$content .= \'\"\';
$content .= $relativePath;
$content .= \'\"\';
$content .= \' => array(\"\';
$content .= $fileSize;
$content .= \'\",\"\';
$content .= $fileMd5;
$content .= \'\"),\';
$content .= \"\\n\";
if (! fwrite ( $fileHandle, $content )) {
print ($filePath . \" can not be written!\") ;
}
}
/**
* 在manifes文件中写入头信息
*
* @param unknown $fileHandle
*/
public static function writeMaifestHeader($fileHandle) {
$header = \"<?php\";
$header .= \"\\n\";
$header .= \"// This file is automatically generated\";
$header .= \"\\n\";
$header .= \"namespace test;\";
$header .= \"\\n\";
$header .= \"class MyFile {\";
$header .= \"\\n\";
$header .= \"\\tstatic \\$allFiles=array(\";
$header .= \"\\n\";
if (! fwrite ( $fileHandle, $header )) {
printf ( \"Failure while write file header.\" );
}
}
/**
* 在manifes文件中写入尾部信息
*
* @param unknown $fileHandle
*/
public static function writeMaifestFooter($fileHandle) {
$footer = \"\\t);\";
$footer .= \"\\n\";
$footer .= \"}\";
$footer .= \"\\n\";
if (! fwrite ( $fileHandle, $footer )) {
printf ( \"Failure while write file header.\" );
}
}
}
// Start application
TestGenerate::start ();
?>
继续阅读与本文标签相同的文章
上一篇 :
数据湖需要一次“二次手术”
下一篇 :
php 汉字转拼音源码
-
微信 7.0.8 内测新功能,教你如何激活它
2026-05-14栏目: 教程
-
美女机器人刚上市就售罄,除了生孩子,其他什么都能干!
2026-05-14栏目: 教程
-
互联网之光大会的黑科技,总有一款惊艳你!
2026-05-14栏目: 教程
-
微信宣布一项新举措,关系到每一个用户,网友一致力挺:干得漂亮!
2026-05-14栏目: 教程
-
微软建议企业客户卸载KB4520062累积更新
2026-05-14栏目: 教程
