Можно ли добавить символы в имя файла?

Мне просто интересно, можно ли добавить символы к имени файла при вызове его из базы данных с использованием PHP.

Например, у меня есть следующий код для извлечения изображения в PHP, я хочу, чтобы, когда пользователь нажимает на изображение, оно отображало изображение в большем размере.

<a href='.$file_name.' rel="lightbox[images]" title="'.$year.' - '.$description.'">
<img src='.$file_name.' />
</a>

У меня есть все изображения большего размера с тем же именем файла, за исключением того, что они имеют _lg в конце.

Я перепробовал много решений, используя фактический код лайтбокса, который я использую, но я не могу заставить его работать, поэтому я подумал, что это может сработать.

1

Решение

Я понял, как это сделать, изменив мой код на это:

<a href='.$file_name.'_lg.jpg'.' rel="lightbox[images]" title="'.$year.' - '.$description.'">
<img src='.$file_name.'.jpg />

Но сначала мне пришлось изменить путь к изображению в базе данных, мне пришлось удалить .jpg в конце и вручную добавить его, используя $ filename. ‘. Jpg

1

Другие решения

Вам не нужно менять способ хранения данных в вашей базе данных.

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».

1

Ваша ссылка href должна, вероятно, ссылаться на увеличенную версию. Что-то вроде:

echo '<a href="'.$file_name_large.'" rel="lightbox[images]" title="'.$year.' - '.$description.'">
<img src="'.$file_name.'" />
</a>';

Но вам нужно как-то получить или создать правильное имя файла для большего изображения. Вы также можете сохранить имя файла большей версии в БД и просто использовать его, или если имена файлов похожи на «image1.jpg» и «image1_lg.jpg», и вы сохраняете только имя изображения меньшего размера в БД, которое вам необходимо используйте некоторые функции обработки строк, чтобы создать одно имя файла из другого.

По сути, вам нужно разделить строку по последней точке в имени файла (при условии, что имена файлов содержат некоторое обычное расширение файла) и добавить строку «_lg» непосредственно перед последней точкой, чтобы получить другое имя файла.

0

присоединять _lg на ваше имя файла ..

 $file = explode(".", $file_name);

<a href="'.$file[0].'_lg'.$file[1].'" rel="lightbox[images]" title="'.$year.' - '.$description.'">
<img src='.$file_name.' />

0

Вы можете сделать что-то подобное во время цикла.

<?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>
0
По вопросам рекламы [email protected]