$cmd = 'jpegtran a.jpg > b.jpg';
system($cmd);
$newsize = filesize('b.jpg');
if($newsize != 0) {
copy('b.jpg','a.jpg');
}我希望在一堆图像上运行jpegtran,只有在命令成功的情况下才能将输出复制到原始文件中。
当我运行上面的php代码时,对于某些图像,我会得到一些错误,比如‘jpg文件的过早结束’或‘空输入文件’等等。
如何捕获这些错误并在代码中相应地执行操作?
发布于 2012-06-27 08:00:52
我不确定jpegtran如何在错误时返回,但更常见的是,错误上的返回代码与0不同。
如果是这样,您可以使用exec() - http://php.net/manual/en/function.exec.php而不是system(),并在return_var中获得jpegtran的结果,如下所示:
exec('jpegtran a.jpg > b.jpg', $result, $return_var);
if( $return_var ) {
// Error log here
}编辑:我忘了system()也返回了return_var。因此,同样的情况可以通过system('jpegtran a.jpg > b.jpg', $return_var);实现。
https://stackoverflow.com/questions/11221522
复制相似问题