php-mkdir通过符号链接警告


php mkdir via symlink warning

我想通过使用符号链接(软链接)递归地创建目录,但我遇到了警告:

警告:mkdir():文件存在于。。。php代码的路径。。。在线21

我要创建的目录是/vagrant/resources/page

/var/www路径中,我创建了一个名为resources的符号链接,链接到/vagrant/resources目录,php代码如下:

$directory = '/var/www/resources/page';
if(!file_exists($directory)){
      mkdir($directory,0777,true);
}

对/farrant内所有目录的权限都设置为777。谢谢

正如@arkascha所提到的,问题不在于符号链接,而在于您试图创建的目录的存在。考虑到您的mkdir命令有一个公平的条件,这有点奇怪。

尝试使用is_dir()而不是file_exists()

我用readlink解决了类似的问题。之前还要检查它是否是链接。之后,路径可以按预期使用。

$path = '/var/www/resources'
if (is_link($path)) {
    $path = readlink($path);
}