Я написал функцию, чтобы взять путь к изображению, добавить немного текста в конец, а затем соединить его вместе. Я пытаюсь написать ветку if else, чтобы проверить, существует ли файл после добавления нового текста к изображению.
Например, если я запрашиваю путь к изображению:
http://example.com/image1.jpg
Это можно изменить следующим образом:
http://example.com/image1-150x100.jpg
Функция предназначена для WordPress, поэтому принимает аргумент $ post-> ID, имя настраиваемого поля, ширину и высоту предполагаемой цели.
Вот функция:
function get_galleria_image ( $post_id, $customFieldName, $width, $height ) {
$imagePath = get_post_meta($post_id, $customFieldName, true);
$splitImage = explode('.', $imagePath);
$count = count($splitImage);
$firstHalf = array_slice($splitImage, 0, $count-1);
$secondHalf = array_slice($splitImage, $count-1);
$secondHalf[0] = '-' . $width . 'x' . $height . '.' . $secondHalf[0];
$firstHalfJoined = implode('.', $firstHalf);
$completedString = $firstHalfJoined . $secondHalf[0];
// if the filename with the joined string does not exist, return the original image
if (file_exists($completedString)){
return $completedString;
} else {
return $imagePath;
}
}
Я знаю, что это грубо, поэтому приветствуются любые идеи по сжатию этого кода и его улучшению. Я обнаружил, что функция всегда возвращает исходный путь к изображению. Может ли file_exists () принимать абсолютный путь, например "http://example.com/image1.jpg',", или он принимает только абсолютный путь в стиле root, например '/path/to/file/image1.jpg'?