Если вы проверяете наличие файла, PHP предлагает хорошую функцию
http://us.php.net/file_exists
Модифицированный пример со страницы.
<?php
$filename = '/path/to/334234234234234.gif';
if (file_exists($filename)) {
echo "<img src='334234234234234.gif'/>";
} else {
echo "The file $filename does not exist";
}
?>
Чтобы ответить на ваш вопрос.
Даже когда изображение существует,
Ошибка все еще выполняется. Почему?
Ошибка onError никогда не выполняется. Кажется, он выполняется, потому что вы явно выводите переменную $ err в конце скрипта. Если вы используете приведенный выше код, вы можете достичь того, что, как я считаю, было ожидаемым результатом, не полагаясь на событие JavaScript.