首页 > 解决方案 > 为什么 PHP 函数 is_link 无法识别链接

问题描述

很容易重现。只需创建一些文件夹,我将其命名为php-test. 还有一个文件夹,target. 然后 cd 到php-test

$ mkdir uploads
$ ln -sfn ../target uploads

检查我们是否有符号链接

$ ls -l uploads
total 0
lrwxrwxrwx 1 travel travel 9 Apr 15 18:51 target -> ../target

在当前目录中创建 test.php:

<?php

$link = 'uploads';

if (is_link($link)) {
    echo "is link $link\n";
} else {
    echo "not a link $link\n";
}

并运行它

$ php test.php

有人可以解释为什么输出是

not a link uploads

?

标签: phpsymlink

解决方案


阅读文档,参数必须是文件。正如它所说:文件名是文件的路径。

touch filelink
ln -sfn ../target filelink

请注意您的链接路径是正确的。您的 test.php 必须在同一个 php-test 目录中才能以这种方式工作。

<?php

$link = 'filelink';

if (is_link($link)) {
    echo "is link $link\n";
} else {
    echo "not a link $link\n";
}

推荐阅读