Yii2框架中使用PHPExcel导出Excel文件的示例
897
2023-12-10

php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
实例代码:
<?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 = "tt";
$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 ();
?>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
#免责声明#
本站[绿夏技术导航]提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序或内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件[admin@lxwl520.com]与我们联系进行删除处理。敬请谅解!