0
    $cmd = 'jpegtran a.jpg > b.jpg';
    system($cmd);
    $newsize = filesize('b.jpg');
    if($newsize != 0) {
       copy('b.jpg','a.jpg');
    }

我想在一堆图像上运行jpegtran并仅在命令成功的情况下将输出复制到原始文件。

当我运行上述 php 代码时,对于某些图像,我会收到诸如“jpg 文件过早结束”“输入文件为空”等错误。

如何捕获这些错误并在我的代码中采取相应措施?

4

1 回答 1

1

我不确定如何jpegtran返回错误,但更常见的错误返回代码与 0 不同。

如果是这样,您可以使用exec()- http://php.net/manual/en/function.exec.php代替并在 return_var 中system()获取结果,如下所示: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);

于 2012-06-27T08:00:52.373 回答