PHP的文件路径组件函数返回不正确的结果

时间:2013-05-08 06:12:59

标签: php path filenames filepath

您可以使用数组表示法获取完整文件路径的一部分,例如

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”被错误地命名(因为它返回整个文件名),“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

知道为什么吗?感谢。

1 个答案:

答案 0 :(得分:1)

原来这里缺少一步:调用pathinfo将路径字符串转换为数组。 Pramod的评论指出了这个问题,虽然它不太正确:pathinfo不会创建一个FILE数组。它只是将一个字符串解析成一个数组。

谢谢!