2012-01-27 62 views
1

我需要在PHPPHP正則表達式提取文件名

我有像一個正則表達式的幫助: vacation.jpg和我期待的,提取我的只有文件名的「假期」正則表達式。 有人可以幫我嗎?

+0

可能重複[PHP獲取文件沒有擴展名(http://stackoverflow.com/questions/2183486/php-get-file-name-without-file-extension) – Qtax 2012-01-27 13:20:56

+0

你不需要正則表達式 - PHP具有內置的特性,使您可以在沒有正則表達式的情況下執行此操作。 – Tadeck 2012-01-27 13:22:12

回答

6

不要使用正則表達式此 - 使用basename

$fileName = basename($fullname, ".jpg"); 
4

可以使用pathinfo代替正則表達式。

$file = 'vacation.jpg'; 
$path_parts = pathinfo($file); 
$filename = $path_parts['filename']; 

echo $filename; 
0

你不需要這個正則表達式。

方法1:

$str = 'vacation.jpg'; 
$parts = explode('.', basename($str)); 
if (count($parts) > 1) array_pop($parts); 
$filename = implode('.', $parts); 

方法2(更好,使用pathinfo()):

$str = 'vacation.jpg'; 
$filename = pathinfo($str, PATHINFO_FILENAME); 
1

如果你真的需要正則表達式,這個人會做到這一點:

$success = preg_match('~([\w\d-_]+)\.[\w\d]{1,4}~i', $original_string, $matches); 

內部匹配你將有文件名的第一部分。

1

已經提供了更好的答案,但這裏有另一種選擇!

$fileName = "myfile.jpg"; 
$name = str_replace(substr($fileName, strpos($fileName,".")), "", $fileName);