linkinfo() 函数返回关于一个链接的信息。
此函数从文件系统的磁盘上获取链接信息,返回链接的设备号(device number)。如果链接不存在,函数返回0或false。
linkinfo ( string $path ) : int|false
| 参数 | 类型 | 说明 |
|---|---|---|
path |
字符串 | 链接的路径。可以是符号链接或硬链接的路径。 |
成功时返回链接的设备号(一个正整数)。
失败时返回0或false(通常是链接不存在或不是链接)。
<?php
$link = 'symlink_to_file';
$target = 'target_file.txt';
// 创建目标文件
file_put_contents($target, '这是一个测试文件。');
// 创建符号链接
symlink($target, $link);
// 使用linkinfo()获取链接信息
$linkInfo = linkinfo($link);
if ($linkInfo !== false && $linkInfo > 0) {
echo "链接存在,设备号: " . $linkInfo . "\n";
// 获取更多详细信息
echo "链接路径: " . $link . "\n";
echo "链接inode: " . fileinode($link) . "\n";
echo "目标文件inode: " . fileinode($target) . "\n";
} else {
echo "链接不存在或不是有效的链接。\n";
}
// 清理
unlink($link);
unlink($target);
?>
<?php
// 创建测试文件和链接
file_put_contents('regular_file.txt', '这是一个普通文件。');
symlink('regular_file.txt', 'symlink.txt');
link('regular_file.txt', 'hardlink.txt');
// 检查不同类型的链接
$files = [
'regular_file.txt',
'symlink.txt',
'hardlink.txt',
'nonexistent.txt'
];
foreach ($files as $file) {
$info = linkinfo($file);
if ($info !== false && $info > 0) {
echo $file . ": 是有效的链接,设备号 = " . $info . "\n";
} else {
echo $file . ": 不是有效的链接或文件不存在\n";
}
}
// 清理
unlink('regular_file.txt');
unlink('symlink.txt');
unlink('hardlink.txt');
?>
<?php
$target = 'data.txt';
$symlink = 'link_to_data.txt';
// 创建测试文件
file_put_contents($target, '这是一个测试文件。');
// 创建符号链接
if (symlink($target, $symlink)) {
echo "符号链接创建成功\n\n";
// 使用linkinfo()检查
$linkInfoResult = linkinfo($symlink);
echo "linkinfo()结果: " . $linkInfoResult . "\n";
// 使用is_link()检查
$isLinkResult = is_link($symlink);
echo "is_link()结果: " . ($isLinkResult ? 'true' : 'false') . "\n";
// 比较两个函数的结果
if ($linkInfoResult !== false && $linkInfoResult > 0 && $isLinkResult) {
echo "两个函数都确认这是一个符号链接。\n";
} else {
echo "两个函数的检查结果不一致。\n";
}
// 获取更多信息
echo "\n链接详细信息:\n";
echo "文件类型: " . filetype($symlink) . "\n";
echo "文件大小: " . filesize($symlink) . " 字节\n";
// 清理
unlink($symlink);
unlink($target);
} else {
echo "创建符号链接失败\n";
}
?>
| 返回值 | 说明 |
|---|---|
| 正整数 | 链接的设备号,表示链接存在于有效的文件系统上 |
| 0 | 链接可能不存在,或者不是一个有效的链接 |
| false | 函数执行失败,通常是因为参数错误或系统调用失败 |