Что, вы пытались с умным .png|.jpg
, является, к сожалению, не известным синтаксисом. Он не будет интерпретироваться ни PHP, ни браузером, который анализирует HTML. PHP не имеет функции, которая автоматически заполняла переменные пути в виде расширения параметров оболочки. ?. Конечно, есть glob()
, но перетаскивание всего каталога, чтобы получить один файл с расширением jpg/png, было бы очень неэффективным.
Если у вас нет записи о том, что расширение файла (? Вы можете опрашивать базу данных WP), вы должны просто проверить что-то вроде этого, предполагая, JPG/PNG единственные возможности:
$file = 'user_avatar0.';
$file .= file_exists($file.'jpg') ? 'jpg' : 'png';
Это объединяет базовое имя с расширением jpg
, если есть совпадение, и возвращается к png
, если нет. Если есть вероятность, что у пользователя нет аватара вообще, тогда вы должны сделать if-elseif-else
вместо этого, и по умолчанию стандартный заполнитель, если оба теста file_exists
не пройдут. Вы также можете использовать realpath()
, is_file()
или stream_resolve_include_path()
, чтобы проверить, существует ли файл; но логика остается прежней. По слухам, последний вариант будет самым быстрым, но в любом случае каждый из них кэширует свои результаты.
Независимо от того, если вы продолжаете показывать одни и те же аватары пользователей при повторяющихся загрузках страниц, вам нужно будет сохранить результаты этих проверок в массив $_SESSION
, чтобы устранить повторную и избыточную проверку. Я оставлю это вам, чтобы сравнить PHP-файлы с файловым кешем и кешем сеанса.
Файл с расширением mulitple может быть примерно таким: 'file.en.html'. Это верно, но, вероятно, не то, что вы здесь имеете в виду. – Progrock