2010-11-14 4 views
0

Я ВОССТАНОВЛЕНИЕ расположения файлов и имена из базы данных, то в этом форматеPHP Режущий последние несколько символов имени файла

http://domain.com/subdir/etc/etc/etc/picimage-niceone_Main-150x150.jpg

Все они динамичны, так что сотни из них все с разные имена, но одно постоянное - это последнее, а затем размер файла.

Мне нужно сделать все, что нужно после последнего, так что это превращается в следующее.

http://domain.com/subdir/etc/etc/etc/picimage-niceone_Main.jpg

Любая помощь будет удивительным.

Приветствия,

ответ

1
$stringName = "picimage-niceone_Main-150x150.jpg"; 
$newName = substr($stringName,0,strrpos($stringName,"-")).substr($stringName,-4); 

Это удалит что-нибудь между последним - и расширение файла.

+0

идеально подходит .. Спасибо – Chris

+1

мой ответ, вероятно, не самый лучший, но спасибо –

0
$newname = preg_replace("/-[^-.]*(\\.[a-zA-Z]*)$/", '$1', $oldname); 
1

Посмотрите на preg_replace():

$url = preg_replace('/\-(\d+)x(\d+)(\.\w+)$/', '$3', $url); 

т.е. найти дефис, номер, в «х», число, и расширение, и заменить все это только с расширением.

В качестве альтернативы, если вы действительно хотите знать, каковы были эти значения ширины и высоты (например, заселить <IMG> тег атрибуты:

$url = 'http://domain.com/subdir/etc/etc/etc/picimage-niceone_Main-150x150.jpg'; 
$regex = '/(.*?)-(\d+)x(\d+)(\.\w+)$/'; 
if (preg_match($regex, $url, $matches)) { 
    $width = $matches[2]; 
    $height = $matches[3]; 
    $url = $matches[1] . $matches[4]; 
} 
+0

Я действительно должен научиться регулярным выражениям, когда-нибудь не .. –

Смежные вопросы