Мне просто интересно, можно ли добавить символы к имени файла при вызове его из базы данных с использованием PHP.
Например, у меня есть следующий код для извлечения изображения в PHP, я хочу, чтобы, когда пользователь нажимает на изображение, оно отображало изображение в большем размере.
<a href='.$file_name.' rel="lightbox[images]" title="'.$year.' - '.$description.'">
<img src='.$file_name.' />
</a>
У меня есть все изображения большего размера с тем же именем файла, за исключением того, что они имеют _lg в конце.
Я перепробовал много решений, используя фактический код лайтбокса, который я использую, но я не могу заставить его работать, поэтому я подумал, что это может сработать.
Я понял, как это сделать, изменив мой код на это:
<a href='.$file_name.'_lg.jpg'.' rel="lightbox[images]" title="'.$year.' - '.$description.'">
<img src='.$file_name.'.jpg />
Но сначала мне пришлось изменить путь к изображению в базе данных, мне пришлось удалить .jpg в конце и вручную добавить его, используя $ filename. ‘. Jpg
Вам не нужно менять способ хранения данных в вашей базе данных.
function get_larger($file_name)
{
return pathinfo($file_name, PATHINFO_DIRNAME) . pathinfo($file_name, PATHINFO_FILENAME) . '_lg.' . pathinfo($file_name, PATHINFO_EXTENSION);
}
Тогда вам просто нужно позвонить get_larger
функция в href
значение:
<a href='.get_larger($file_name).' rel="lightbox[images]" title="'.$year.' - '.$description.'">
<img src='.$file_name.' />
</a>
Это позволит пользователям загружать больше расширений, чем просто «.jpg».
Ваша ссылка href должна, вероятно, ссылаться на увеличенную версию. Что-то вроде:
echo '<a href="'.$file_name_large.'" rel="lightbox[images]" title="'.$year.' - '.$description.'">
<img src="'.$file_name.'" />
</a>';
Но вам нужно как-то получить или создать правильное имя файла для большего изображения. Вы также можете сохранить имя файла большей версии в БД и просто использовать его, или если имена файлов похожи на «image1.jpg» и «image1_lg.jpg», и вы сохраняете только имя изображения меньшего размера в БД, которое вам необходимо используйте некоторые функции обработки строк, чтобы создать одно имя файла из другого.
По сути, вам нужно разделить строку по последней точке в имени файла (при условии, что имена файлов содержат некоторое обычное расширение файла) и добавить строку «_lg» непосредственно перед последней точкой, чтобы получить другое имя файла.
присоединять _lg на ваше имя файла ..
$file = explode(".", $file_name);
<a href="'.$file[0].'_lg'.$file[1].'" rel="lightbox[images]" title="'.$year.' - '.$description.'">
<img src='.$file_name.' />
Вы можете сделать что-то подобное во время цикла.
<?php
$file_name = "some.image.01.jpg";
$large_file_name = pathinfo($file_name, PATHINFO_FILENAME) . "_lg." . pathinfo($file_name, PATHINFO_EXTENSION);
?>
<a href='.$large_file_name.' rel="lightbox[images]" title="'.$year.' - '.$description.'">
<img src='.$file_name.' />
</a>