доступ к диску = медленно
У вас есть несколько вариантов. Один из них - проверять, существует ли файл каждый раз, когда вам нужно его отобразить. К сожалению, это далеко не идеально, потому что чтение с диска может стать узким местом для производительности. Это ненадежное решение, если вы загружаете сотни страниц в минуту. В высокопроизводительных средах вы хотите избегать как можно большего числа файловых статистик:
$img_dir = '/path/to/artist/images';
$expected_file = $img_dir . '/' . $artist_name . '.jpg';
$img = file_exists($expected_file) ? $artist_name : 'default';
Зашифруйте имена в вашем коде
Другой, если у вас есть небольшое количество художников, чьи изображения вам нужно отобразить, это жестко закодировать названия ваших изображений:
$authors = array('Bill Shakespeare', 'Douglas Adams', 'Ralph Ellison');
$img = in_array($artist_name, $authors) ? $artist_name : 'default';
Конечно, это не особенно полезно, потому что тогда вам нужно будет редактировать ваш код каждый раз, когда меняется ваш каталог изображений артистов.
Лучшая идея ...
В этом случае предпочтительным вариантом будет:
Поскольку вы уже нажимаете на базу данных, чтобы получить записи об исполнителе, сохраните соответствующее имя файла изображения в столбце базы данных таблицы исполнителей. Таким образом, вы можете избежать лишнего доступа к диску.
Этот метод позволяет вам получить имя файла из базы данных с вашим исходным запросом. Если поле пустое, вы будете знать, что вместо этого будет отображаться изображение по умолчанию.