如何检查 php 中是否存在带有符号链接的目录以及是否不存在

问题描述 投票:0回答:2

我有这个:

move_uploaded_file($File['tmp_name']['File'], $FilePath);

哪里

$FilePath is '/data/www/MIMICm/Common/Upload/PPKInside/CustomImage/6/52'

其中 'PPKInside' 是指向 '../../MIMI/Common/Data/' 的符号链接,其中 'Data' 是指向 '/mnt/nfsnew/DIDIData/PPKInside/Data' 的符号链接
到目前为止,我发现 '/mnt/nfsnew/' 为空,并且 '/DIDIData/PPKInside/Data' 缺少目录...
检查目录是否存在并在不存在时创建它们的最佳方法是什么?因为目前

is_dir('/data/www/MIMICm/Common/Upload/PPKInside');

返回 false,我需要使用 is_link() 但在第一个链接('PPKInside')之后,我无法检查其子目录是否存在并在需要时创建它们...

php linux symlink
2个回答
1
投票

realpath 将展开给定路径中的任何符号链接并告诉您最终的绝对文件(目录)是否存在:

realpath() 失败时返回 FALSE,例如如果文件不存在。

如果不存在,您可以通过使用 mkdir 并设置

$recursive
标志来一次性创建完整的目录路径,并一路添加缺少的子目录。

$FilePath = '/data/www/MIMICm/Common/Upload/PPKInside/CustomImage/6/52';

if (!realpath($FilePath)) {
    mkdir($FilePath, 0777, true);
}

请注意,此特定示例为“每个人”创建具有读/写/执行权限的任何目录。您可能想要更改 0777 以更好地适合您的特定设置。


0
投票
try ... finally

 来创建它们
    

© www.soinside.com 2019 - 2024. All rights reserved.