is_link() 用于判断路径是否为符号链接,只检测链接文件本身存在性,不验证目标有效性;结合 readlink() 获取目标路径,用 lstat() 获取链接自身元数据,注意与 stat() 的区别。
用 is_link() 判断文件是否为符号链接
PHP 提供了原生函数 is_link(),专门用于检测路径是否指向一个符号链接(软链接)。它不关心目标是否存在,只看当前路径本身是不是链接文件。
常见错误是误用 file_exists() 或 is_file() —— 它们对有效符号链接会返回 true,但无法区分“普通文件”和“指向文件的链接”。
-
is_link('/path/to/symlink')→true(即使目标被删,只要链接文件本身存在) -
is_link('/path/to/real/file')→false -
is_link('/path/to/broken/link')→ 仍为true(链接文件没被删,只是目标失效)
结合 readlink() 获取目标路径
确认是符号链接后,常需读取它指向的真实路径,这时用 readlink()。注意它只接受字符串路径,不支持资源或句柄。
该函数返回相对或绝对路径字符串,也可能失败并触发警告(比如权限不足),建议配合 @ 抑制或提前检查可读性。
立即学习“PHP免费学习笔记(深入)”;