作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将 PHP 站点和关联的计划任务移至 Azure。
我可以运行大部分 Web 作业,但其中一个在尝试执行命令行“zip”命令时尤其失败(可能是因为 Azure 没有此实用程序可用):
exec('zip -9 -j '.$tmpdir.'GROUP-'.date('dmY').'-DMS14.zip '.$zip_images);
给出:“zip”未被识别为内部或外部命令
是否有可以在 Azure 上运行来压缩文件的等效模块/命令?
最佳答案
由于Azure网站运行在IIS上托管的Windows VM上,并且“zip”不是Windows内置命令,因此我们无法在PHP中执行它。
@Rick Rainey 利用 PHP 内置 ZipArchive
类来获取它的想法是正确的,我们不需要在 Azure 上安装它,我想添加一些提示:
1、当我们添加Webjob时,job脚本文件会上传到D:\home\site\wwwroot\App_Data\jobs
,并为 分离
到连续
并作为子文件夹触发。
2、由于IIS使用FastCGI
来处理这些PHP脚本,因此这里不会定义$_SERVER
变量。所以我们可以使用文件的绝对目录来代替。
这是我的测试代码片段:
$zip = new ZipArchive();
$filename = "D:/home/site/wwwroot/test112.zip";
if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}
$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFile("D:/home/site/wwwroot/.user.ini");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
关于php - 如何在 Azure 上的 PHP webjob 中压缩文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32177568/
我是一名优秀的程序员,十分优秀!