2013-05-08 41 views
0

可以使用數組符號得到一個完整的文件路徑的部分,如PHP的文件路徑成分函數返回不正確的結果

echo $path_parts['dirname'], "\n"; 
echo $path_parts['basename'], "\n"; 
echo $path_parts['extension'], "\n"; 
echo $path_parts['filename'], "\n"; // since PHP 5.2.0 

但是,除了「基本名」被命名錯誤(因爲它返回整個文件名) ,'basename'和'filename'版本只返回文件名的第一個字符。如果文件名是Archive.zip,我做到以下幾點:

echo "Here's the zip filename: " . $zipFilename . "<br>"; 
echo "Here's the basename: " . $zipFilename['basename'] . "<br>"; 
echo "Here's the 'filename': " . $zipFilename['filename']; 

我得到:

Here's the zip filename: Archive.zip 
Here's the basename: A 
Here's the 'filename': A 

如果我嘗試它的完整路徑,上傳/上Archive.zip,我得到:

Here's the zip filename: uploads/Archive.zip 
Here's the basename: u 
Here's the 'filename': u 

任何想法爲什麼?謝謝。

+0

順便提一下,這個文件是通過POST/GET上傳的?這裏有什麼情況? – 2013-05-08 06:18:41

+0

如何將值/文件設置爲$ zipFilename? – 2013-05-08 06:40:18

+0

是的,它用於上傳的文件。 $ zipFilename來自POST(用戶選擇的文件的名稱),但是如果我對它進行硬編碼,會發生同樣的情況。儘管感謝您的評論,請參閱下面的答案。 – Oscar 2013-05-08 06:42:07

回答

1

原來這裏有個缺失的步驟:調用pathinfo將路徑字符串轉換爲數組。 Pramod的評論指出了這個問題,儘管它不是很正確:pathinfo不會創建一個FILE數組。它只是將一個字符串解析成一個數組。

謝謝!