2011-06-02 114 views
6

據我所知,使用PHP的basename()功能,您可以從像這樣的路徑剝離已知文件擴展名,PHP條未知的文件擴展名

basename('path/to/file.php','.php') 

,但如果你不知道這個文件有什麼擴展什麼或該延長的長度?我怎麼做到這一點?

在此先感謝!

回答

9

pathinfo()已經講到這裏,但我喜歡從PHP 5.2添加它也有一個簡單的方法來訪問沒有擴展名的文件名。

$filename = pathinfo('path/to/file.php', PATHINFO_FILENAME); 

$filename的值將是file

+0

太棒了,我忘了它。它應該是被接受的答案 - 沒有黑客,正則表達式,字符串操作和只有一行。 – galymzhan 2011-06-02 15:16:20

+0

@galymzhan不用擔心接受的答案,我只是添加它以備將來參考。您的解決方案仍然適用於PHP <5.2的用戶。 – kapa 2011-06-02 15:18:00

+0

謝謝我接受你的答案! - 這是一行代碼,更簡單一些。 – 2011-06-02 15:42:39

4

您可以使用pathinfo提取擴展名並將其剪下。

// $filepath = '/path/to/some/file.txt'; 
$ext = pathinfo($filepath, PATHINFO_EXTENSION); 
$basename = basename($filepath, ".$ext"); 

注意.$ext

0

試試這個: -

$path = 'path/to/file.php'; 

$pathParts = pathinfo($path); 

$pathWihoutExt = $pathParts['dirname'] . DIRECTORY_SEPARATOR . $pathParts['filename']; 
0

你可以用這個嘗試:

$filepath = 'path/to/file.extension'; 
$extension = strtolower(substr(strrchr($filepath, '.'), 1));