PHP mkdir返回1,但目录不存在

时间:2019-05-19 17:05:13

标签: php ubuntu

我正在用mkdir在php中创建目录,它返回true,但是当我ssh进入服务器时,我无法在指定路径中找到目录。

我已经检查了服务器中的其他位置。

if (!file_exists('/tmp/tmpfileeee')) {

mkdir('/tmp/tmpfileeee',0755);

echo 'created';

}

2 个答案:

答案 0 :(得分:0)

执行此操作的地方是否存在tmp? tmpfileee是您要创建的文件或目录吗?如果tmp不存在,tmpfileee也不存在,那么我相信您正在尝试建立2个在调用中没有递归参数的目录。

我的PHP绝对是生锈的,所以也许其他人可以回答得更好,但这只是我最初的想法。

答案 1 :(得分:0)

只需尝试:

if (!file_exists('tmp/tmpfileeee') AND !is_dir('tmp/tmpfileeee')) {
    mkdir('tmp/tmpfileeee',0755, true);
    echo 'created';
}

mkdir创建一个文件夹非文件

如果要创建文件:

if (!file_exists('tmp/tmpfileeee') AND !is_file('tmp/tmpfileeee')) {
    $fp = fopen('tmp/tmpfileeee', 'w');
    echo 'created';
}

或最佳方法:

// 1. Check folder and xreate if not exists
if (!file_exists('tmp') AND !is_dir('tmp')) {
    mkdir('tmp',0755, true);
    echo 'folder created';
}
// 2. Check file and create if not exists
if (!file_exists('tmp/tmpfileeee') AND !is_file('tmp/tmpfileeee')) {
    $fp = fopen('tmp/tmpfileeee', 'w');
    echo 'file created';
}

更新

在某些服务器上,tmptemp文件夹受到限制。

检查open_basedir

PHP手册状态:

  

如果此处指定的目录不可写,PHP将退回到系统默认的临时目录。如果open_basedir打开,则必须允许系统默认目录才能成功上载。