Php 解压缩一组图像时出错
我正在将公共领域的书籍从archive.org导入我的网站,并设置了一个php导入脚本来完成这项工作。但是,当我尝试导入图像并运行Php 解压缩一组图像时出错,php,bash,Php,Bash,我正在将公共领域的书籍从archive.org导入我的网站,并设置了一个php导入脚本来完成这项工作。但是,当我尝试导入图像并运行 exec( "unzip $images_file_arg -d $book_dir_arg", $output, $status ); 它偶尔会给我返回$status 1。这样行吗?到目前为止,我对导入的图像没有任何问题。我在手册页上查找解压,但没有告诉我多少。这可能会导致问题吗?我是否必须单独检查每张图片,或者我是否安全?也许您更适合使用php集成的zipar
exec( "unzip $images_file_arg -d $book_dir_arg", $output, $status );
它偶尔会给我返回$status 1。这样行吗?到目前为止,我对导入的图像没有任何问题。我在手册页上查找解压,但没有告诉我多少。这可能会导致问题吗?我是否必须单独检查每张图片,或者我是否安全?也许您更适合使用php集成的ziparchive类。
特别是,如果提取成功,它将返回TRUE,否则返回FALSE。编辑::Oops。我应该马上检查手册页。它们告诉我们错误代码的含义: 退出状态(或错误级别)近似于PKWARE定义的退出代码,并采用以下值,VMS下除外:
它确实应该可以工作,但某些文件名会带来复杂的问题。他们中是否有人对不寻常的角色有潜在的狡猾
escapeshellarg
当然是值得研究的。如果您得到一个错误的返回状态,您应该担心,因为这意味着zip退出时出现了一些错误或其他。至少,我建议您在这种情况下记录文件名(error\u log($filename)
),并查看是否有任何可能导致问题的内容。zip本身完全独立于PHP运行,如果shell传递了正确的参数,并且文件确实已下载并准备解压,那么一切都会很好。我已经按照您的建议使用escapeshellarg对文件进行了转义(我可能应该提到这一点)。我已经确认文件是正确的并且解压正确,但是我只是想知道1的返回状态可能意味着什么(如果它可能是一个重大问题)。哦!我真傻。我以为1只是一个普通的失败代码;许多应用程序从特定错误代码的较高数字开始。哎呀。在答案中粘贴手册页的相关部分。您是否确认zip中的每个文件都已正确提取,而不仅仅是部分文件?在任何情况下,它不能出来的那些可能对你都不重要。