pathinfo() 函数是 PHP 中用于获取文件路径信息的内置函数。该函数可以返回一个关联数组,包含有指定路径的文件名、目录名、拓展名等信息。
### 语法
pathinfo(filepath, options)
其中,`filepath` 表示要分析的文件路径,`options` 表示可选参数,用于确定要获取的路径信息。`options` 参数可以是下列常量之一:
- PATHINFO_DIRNAME:表示获取路径中的目录名;
- PATHINFO_BASENAME:表示获取路径中的文件名,包含拓展名;
- PATHINFO_EXTENSION:表示获取路径中的文件拓展名;
- PATHINFO_FILENAME:表示获取路径中的文件名,不包含拓展名。
如果省略 `options` 参数,默认会返回一个关联数组,包含有指定路径的所有路径信息。
### 返回值
调用 `pathinfo()` 函数,会返回一个关联数组,包含有指定路径的文件名、目录名、拓展名等信息。
### 使用示例
#### 示例 1:获取文件名和扩展名
```php
$file_path = '/path/to/file.txt';
$file_info = pathinfo($file_path);
echo $file_info['filename']; // 输出:file
echo $file_info['extension']; // 输出:txt
?>
```
#### 示例 2:获取文件的目录名
```php
$file_path = '/path/to/file.txt';
$file_dir = pathinfo($file_path, PATHINFO_DIRNAME);
echo $file_dir; // 输出:/path/to
?>
```
#### 示例 3:获取文件的大小和修改时间
```php
$file_path = '/path/to/file.txt';
$file_size = filesize($file_path);
$file_time = filemtime($file_path);
$file_info = pathinfo($file_path);
echo "文件名:" . $file_info['basename'] . "
";
echo "文件大小:" . $file_size . " 字节
";
echo "最近修改时间:" . date('Y-m-d H:i:s', $file_time) . "
";
?>
```
#### 示例 4:遍历目录下的所有文件
```php
function list_folder($dir)
{
if (is_dir($dir)) {
$files = scandir($dir);
foreach($files as $file) {
if ($file != "." && $file != "..") {
echo $dir . DIRECTORY_SEPARATOR . $file . "
";
if (is_dir($dir . DIRECTORY_SEPARATOR . $file)) {
list_folder($dir . DIRECTORY_SEPARATOR . $file);
}
}
}
}
}
list_folder('/path/to/folder');
?>
```
上面这个例子中,我们使用了 PHP 的 `scandir()` 函数来遍历目录下的所有文件。对于每个文件,我们使用 `pathinfo()` 函数来获取文件信息并输出。如果文件是一个目录,则通过递归调用 `list_folder()` 函数来继续遍历目录下的文件。
### 注意事项
- 如果 `$file_path` 参数为空字符串,则 `pathinfo()` 函数将返回 `.`,表示当前目录;
- 在 Windows 系统中,路径分隔符为 `\`,而在 Unix/Linx 系统中,路径分隔符为 `/`。因此,为了提高兼容性,使用 `DIRECTORY_SEPARATOR` 常量来表示路径分隔符会更好。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
牛粪终归是牛粪,上锅蒸了也不会变成香饽饽。