Ошибка 500 из-за того, что аватар не найден по url на внешнем сервере

Автор Deminora, 25 ноября 2009, 00:10:23

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Deminora

После исследования возникающей внезапно ошибки 500, обнаружила, что это происходит в случае, когда аватар пользователя на найден по прописанному url на сервере.
Возникает она в момент вызова getimagesize в этом фрагменте кода из Load.php:

if ($modSettings['avatar_action_too_large'] == 'option_html_resize' || $modSettings['avatar_action_too_large'] == 'option_js_resize')
{
list($width, $height, $type, $attr) = getimagesize($profile['avatar']);
$aw = ($width > $modSettings['avatar_max_width_external']) ? $modSettings['avatar_max_width_external'] : $width;
$ah = ($height > $modSettings['avatar_max_height_external']) ? $modSettings['avatar_max_height_external'] : $height;
$avatar_width = !empty($modSettings['avatar_max_width_external']) ? ' width="' . $aw . '"' : '';
$avatar_height = !empty($modSettings['avatar_max_height_external']) ? ' height="' . $ah . '"' : '';
}
else
{
$avatar_width = '';
$avatar_height = '';
}

Подозреваю, что вызов в этом случае вызывается долго и превышает допустимое время выполнения скрипта на хостинге.
Подскажите, пожалуйста, как решить данную проблему. Думаю, что надо каким-то быстрым образом предварительно проверять существование картинки по данному адресу и, только если она существует, вызывать getimagesize.