$value) { if (substr($value, -1) == '/') { mkdir($value); } else { file_put_contents($value, ''); } } } /** * 软著文件生成 * * @param $dir * @param $savePath */ public static function getDirFileContent($dir, $savePath, $suffix = ['php']) { $handle = opendir($dir); while (false !== ($folderOrFile = readdir($handle))) { if ($folderOrFile != "." && $folderOrFile != "..") { if (is_dir("$dir/$folderOrFile")) { self::getDirFileContent("$dir/$folderOrFile", $savePath, $suffix); } else { $array = explode('.', $folderOrFile); if (in_array(end($array), $suffix)) { // 去除注释 $str = StringHelper::removeAnnotation(file_get_contents("$dir/$folderOrFile")); // 追加写入 file_put_contents($savePath, $str, FILE_APPEND); } } } } } /** * @name: * @msg: 把一个或者多个文件打包压缩为一个文件 * @param {array} $files 需要打包压缩的文件 * @param {string} $zip_filename 生成的压缩包文件名称 * @return string 压缩成功返回生成的压缩文件的路径,否则返回 false */ public static function packFiles(array $files = [], string $zip_filename = '') { try { if (empty($files)) return false; $path = \Yii::getAlias('@attachment') . '/download/zips'; if (!file_exists($path)) { mkdir($path, 0755, true); } $temp_path = \Yii::getAlias('@attachment') . '/download/temp'; if (!file_exists($temp_path)) { mkdir($temp_path, 0755, true); } $zip = new \ZipArchive(); if (empty($zip_filename)) { $zip_filename = $path . '/' . '压缩文件-' . date('YmdHis') . mt_rand(0, 100) . '.zip'; } else { $zip_filename = $path . '/' . $zip_filename . '-' . date('YmdHis') . mt_rand(0, 100) . '.zip'; } $zip->open($zip_filename, \ZipArchive::CREATE); foreach ($files as $file) { $csv_filename = $temp_path . '/' . pathinfo($file, PATHINFO_BASENAME); if (!file_exists($csv_filename)) { $csv_str = file_get_contents($file); file_put_contents($csv_filename, $csv_str); } $zip->addFile($csv_filename, basename($csv_filename)); } $zip->close(); return $zip_filename; } catch (\Exception $e) { \Yii::error('打包压缩文件失败,errmsg:' . $e->getMessage()); \Yii::getLogger()->flush(true); return false; } } public static function downFile($save_path,$file_name,$file_url){ $path_info_arr = pathinfo($file_url); if(!is_dir($save_path)) mkdir($save_path,0777,true); $file = $save_path.'/'.$file_name.'.'.$path_info_arr['extension']; $file_resource = file_get_contents($file_url); $res = file_put_contents($file,$file_resource); if($res) return $file; return ''; } public static function recursiveDelete($directory){ if (!$handler = opendir($directory)) { return false; } while (($file = readdir($handler)) !== false) { if ($file !== '.' && $file !== '..') { $file = $directory . '/' . $file; if (is_dir($file)) { self::recursiveDelete($file); } else { @unlink($file); } } } @rmdir($directory); } }