Я пытаюсь поймать следующую ошибку из-за функции imagecreatefromjpeg.ob_start не работает с некоторыми функциями
данных Коррумпированные JPEG: преждевременный конец сегмента
данных Я не хочу, чтобы отобразить эту ошибку на выходе моего PHP скрипт, так что я пытаюсь использовать ob_start и ob_get_contents, но он не работает. Цель состоит в том, чтобы поймать эту ошибку, чтобы узнать, какие изображения повреждены.
Вот мой код:
ob_start();
$img = imagecreatefromjpeg($imgDestinationPath);
$output = ob_get_contents();
echo "test";
ob_end_clean();
if($output == "Corrupt JPEG data: premature end of data segment")
{
$this->log("The following image is corrupted : $imgDestinationPath");
}
var_dump($output);
Выход:
данныеКоррумпированные JPEG: преждевременный конец сегмента данных строка (4) "тест"
Поврежденные изображения:
y идеи относительно того, почему я не получаю imagecreatefromjpeg вывода в буфере?
Вместо 'ob_start()' попытаться использовать 'попробовать {// Пробуем свои вещи здесь} поймать (Exception $ е) {эхо "делать свои вещи, чтобы поймать его здесь"}' блок! Это делает трюк для вас? – Rizier123
'imagecreatefromjpeg' возвращает' false', если он встречает какие-либо ошибки. Если мне не хватает чего-то, смотрящего, что выходной буфер здесь не нужен.Не могли бы вы просто сделать 'if (! $ Output) {$ this-> log (" ... "); } 'вместо? – alexpls
Также есть хороший пример того, как поймать ошибки при использовании 'imagecreatefromjpeg' на сайте документации PHP здесь: http://php.net/manual/en/function.imagecreatefromjpeg.php – alexpls