readlink() 函数返回符号连接(symbolic link)的目标。如果参数不是符号链接,则函数返回 false。
这个函数在PHP文件系统操作中非常有用,特别是在需要获取软链接实际指向的路径时。
readlink ( string $path ) : string|false
| 参数 | 描述 |
|---|---|
path |
符号链接的路径。必需参数。 |
false,通常是当:
path 参数不是有效的符号链接获取符号链接的目标路径:
<?php
// 假设有一个符号链接 link_to_file 指向 /path/to/original.txt
$target = readlink('link_to_file');
if ($target !== false) {
echo "符号链接指向: " . $target;
} else {
echo "读取符号链接失败或不是符号链接";
}
?>
更完整的错误处理示例:
<?php
$link = 'my_symbolic_link';
if (is_link($link)) {
$target = readlink($link);
if ($target !== false) {
echo "符号链接 '{$link}' 指向: {$target}";
// 检查目标文件是否存在
if (file_exists($target)) {
echo " <span class='text-success'>(目标文件存在)</span>";
} else {
echo " <span class='text-danger'>(目标文件不存在)</span>";
}
} else {
echo "无法读取符号链接内容";
}
} else {
echo "'{$link}' 不是符号链接或不存在";
}
?>
获取目录中所有符号链接的目标:
<?php
$directory = '/path/to/directory';
// 扫描目录
$files = scandir($directory);
foreach ($files as $file) {
if ($file === '.' || $file === '..') continue;
$fullPath = $directory . '/' . $file;
if (is_link($fullPath)) {
$target = readlink($fullPath);
echo "符号链接: {$file} → {$target}<br>";
}
}
?>
readlink() 仅适用于符号链接,对于硬链接或普通文件将返回 falseis_link() 函数检查是否为符号链接