我正在将archive.org的公共域名书籍导入我的网站,并设置了php导入脚本来执行此操作。但是,当我尝试导入图像并运行
时exec( "unzip $images_file_arg -d $book_dir_arg", $output, $status );
它偶尔会给我一个$ 1的状态。这可以吗?到目前为止,我对导入的图像没有任何问题。我查了解解压缩的手册页,但它并没有告诉我太多。这可能会导致问题,我是否必须单独检查每张照片,还是我安全?
答案 0 :(得分:0)
也许你更适合使用php集成的ziparchive-class。 http://www.php.net/manual/de/class.ziparchive.php
特别是http://www.php.net/manual/de/function.ziparchive-extractto.php如果提取成功则返回TRUE,否则返回FALSE。
答案 1 :(得分:0)
编辑:哎呀。我应该立即检查该联机帮助页。他们告诉我们错误代码的含义:
退出状态(或错误级别)近似于PKWARE定义的退出代码,并采用以下值,但VMS除外:
正常;没有检测到错误或警告。
遇到一个或多个警告错误,但无论如何处理都已成功完成。这包括zipfiles,其中由于不受支持的压缩方法或使用未知密码加密而跳过了一个或多个文件。
检测到zipfile格式的一般错误。处理可能已成功完成;其他归档程序创建的一些破解的zipfiles具有简单的解决方法。
检测到zipfile格式的严重错误。处理可能立即失败。
(更多)
所以,显然有些档案可能会有文件被跳过,但是zip没有破坏;它只是尽力而为。
它确实应该有效,但某些文件名存在并发症。他们中的任何一个都有不寻常的特征吗? escapeshellarg
当然值得关注。如果你得到一个糟糕的退货状态,你应该担心,因为这意味着zip退出时出现一些错误或其他错误。至少,我建议您在这种情况下记录文件名(error_log($filename)
)并查看是否有任何可能导致问题的内容。 zip本身完全独立于PHP运行,如果它被shell传递给正确的参数,它会做得很好,文件确实已下载并准备解压缩。