2017-02-22 7 views
3
<a class="fancybox" href="images/<?php echo $prod['item_image_url']; ?>" data-fancybox-group="gallery" title=""><img src="images/<?php echo $prod['item_image_url']; ?>" alt="" /></a> 

В этом коде echo $prod['item_image_url']; печатает URL изображения, которые хранятся в моем столе и печатает какAppend строку в конце URL перед расширением

href="images/new-thumb-01.jpg" 

я пытаюсь преобразовать это

href="images/new-thumb-01-big.jpg" 

без изменения данных в базе данных.который означает приложение "-big" в конце URL-адреса, но до ".jpg"

ответ

5

Вы можете использовать pathinfo функции:

$prod['item_image_url'] = "new-thumb-01.jpg"; 

$fileparts = pathinfo($prod['item_image_url']); 

$bigFileName = $fileparts['filename'] . "-big." .$fileparts['extension']; 

$bigFileName держит new-thumb-01-big.jpg

+0

отлично работает ... !!! спасибо большое @Thamilan :) –

+0

отлично один превосходный :) @Thamilan –

+1

Мне нравится это решение, потому что решение взрыва под этим может сломаться, если в URL-адресе есть точки в стороне от того, который предшествует расширению. И так как pathinfo разрывает url в массив, я могу добавить обратно в часть каталога url, используя '$ fileparts ['dirname']', если захочу. Супер полезно. Благодаря! – RachieVee

2

Вы можете просто использовать взрываются функции()

$url = "images/new-thumb-01.jpg"; 
$image = explode('.', $url); 
$newUrl = $image[0].'-big.'.$image[1]; 
echo $newUrl; 

Надежда эта помощь ты ..

+0

очень аккуратное и чистое решение –

1

Если имя файла из базы данных, и файл, возможно, не существует в файловой системе, вы можете использовать substr_replace() вставить определенную строку между именем файла:

<?php 
$string = 'new-thumb-01.jpg'; 
$replacement = '-big'; 
echo substr_replace($string , $replacement , strrpos($string, '.'), 0); 
+0

Вы также правильно благодарили за обмен. @Calos –

1
You have to break filename and file extension and then add whatever file name 
before extension. 

$fileOrg = $_FILES[0]['name']; 
$filenameOnly = array_pop(array_reverse(explode(".", $fileOrg))); 
$ext = end(explode('.', $fileOrg)); 
$filename = $filenameOnly . '-big' .'.' . $ext; 
Смежные вопросы