php - 为什么 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
?
解决方案
阅读文档,参数必须是文件。正如它所说:文件名是文件的路径。
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";
}
推荐阅读
- c++ - 编译时验证类型擦除
- python - 如何从嵌套列表中提取某些值?
- android - RecyclerView 与 RecyclerView.Adapter 在超过 1 项时不更新
- python - Python CSV,元素保留在 txt 文件中的同一单元格上
- qt5 - 使用 Xcode 11 和 DataFormatter 调试 Qt 应用程序
- bash - 如何“挤压”目录级别
- security - 有人可以通过设置 x-hasura-role 来伪造对 Hasura GraphQL Engine 的请求吗?
- java - 赋值的左边一定是变量?
- c++ - 在 Visual Studio 2017 中使用 CMake 向静态库添加依赖项不起作用
- c# - 有没有办法在属性中输入变量(参数)?