1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/softtime-ThinkWechat

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
VersionGenerate.class.php 2.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
FAITH Отправлено 9 лет назад 6b06289
<?php
class VersionGenerate
{
public $appFolder = "";
public $ignoreFilePaths = array(
'./.git',
'./Runtime',
'./Uploads',
'./.idea',
'.gitignore'
);
public function start($version)
{
$AppPath = ".";
$this->appFolder = $AppPath;
$md5 = $this->traverse($AppPath);
return $md5;
}
/**
* 遍历应用根目录下的文件,并生成对应的文件长度及md5信息
*
* @param unknown $AppPath
* 应用根目录,如:xxx/xxx/analytics
* @param string $destManifestPath
* 生成的manifest文件存放位置的文件句柄
*/
public function traverse($AppPath)
{
if (in_array(str_replace('\\', '/', $AppPath), $this->ignoreFilePaths)) {
return null;
}
if (!file_exists($AppPath)) {
return null;
}
if (!is_dir($AppPath)) {
return null;
}
if (!($dh = opendir($AppPath))) {
return null;
}
$md5=array();
// read files
while (($file = readdir($dh)) != false) {
$subDir = $AppPath . DIRECTORY_SEPARATOR . $file;
if ($file == "." || $file == "..") {
continue;
} else if (is_dir($subDir)) {
// rescure
$md=$this->traverse($subDir);
if($md){
$md5[$file]= $md;
}
} else {
// Sub is a file.
$md=$this->getOneFileMd5($subDir);
if($md!=null)
$md5[$file]= $md;
}
}
return $md5;
}
/**
* 写一个文件的md5信息到文件中
*
* @param unknown $filePath
* @param unknown $fileHandle
*/
public function getOneFileMd5($filePath)
{
if (!file_exists($filePath)) {
return;
}
$relativePath = str_replace($this->appFolder . DIRECTORY_SEPARATOR, '', $filePath);
$relativePath = str_replace("\\", "/", $relativePath);
// ignore tmp directory
if (strpos($relativePath, "tmp/") === 0) {
return;
}
$fileSize = filesize($filePath);
$fileMd5 = @md5_file($filePath);
return $fileMd5;
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/softtime-ThinkWechat.git
git@gitlife.ru:oschina-mirror/softtime-ThinkWechat.git
oschina-mirror
softtime-ThinkWechat
softtime-ThinkWechat
master