$cmd = 'jpegtran a.jpg > b.jpg';
system($cmd);
$newsize = filesize('b.jpg');
if($newsize != 0) {
copy('b.jpg','a.jpg');
}
我想在一堆图像上运行 jpegtran,只有在命令成功时才将输出复制到原始文件。
当我运行上面的php代码时,对于某些图像,我会收到诸如" jpg文件过早结束"或"空输入文件"等错误。
如何捕获这些错误并在代码中采取相应的措施?
>我不确定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);