Закаченные картинки вики обрабатывает и генерит из них битмапы. Так что считайте сколько нужно памяти. Для графика 10000x935 нужно больше 32M и это за пределами того что разрешено одной странице (одному запросу PHP по умолчанию).
Я поставил ограничение на вменяемые размеры под максимальные скриншоты современных мониторов. Превышающие предельные габариты картинки будут закачиваться но не отображаться.
Нет никакой нужды в больших изображениях. Тумбы с них смотреть невозможно нормально, а оригинальный размер еще в придачу и убивает некоторые бровзеры.
Расследование привело к переполнению памяти PHP в библиотеке GD при попытке распаковвать PNG в битмап. (Вики хочет генерить thumbnail со всего в т.ч. это уменьшенное превью и "миниатюра" на странице с картинкой)
После того как память съедена оно уже ничего не может сказать кроме пустой страницы. Перехватить catch (Exception) и set_error_handler() в этот момент уже поздно. Нужно заранее ограничивать размеры изображений.
Поставил лимиты на исходный размер:
//VL: 2010-09-06 // guard against memory fatal // see // $src_image = call_user_func( $loader, $srcPath ); if ($srcWidth > 2000 || $srcHeight > 2000) { return; } //VL.
//VL: 2010-09-06 // this fatals out for huge bitmaps // [width] => 10000 // [height] => 935 // [media_type] => BITMAP // [mime] => image/png // $loader == imagecreatefrompng, // $srcPath == /bhome/part1/03/biosoft/biosoft-m.ru/www/w_upload/f/f7/Сравнение_АЧХ_фильтров_с_Баттервортом_и_без.png // see resolution check above // there is no better solution: // http://stackoverflow.com/questions/1117344/a-fail-safe-way-to-prevent-gd-image-library-from-running-out-of-memory-php //VL. $src_image = call_user_func( $loader, $srcPath ); $dst_image = imagecreatetruecolor( $physicalWidth, $physicalHeight );