为了账号安全,请及时绑定邮箱和手机立即绑定

PHP mkdir 返回 1 但目录不存在

PHP mkdir 返回 1 但目录不存在

PHP
收到一只叮咚 2021-06-09 13:09:43
我正在使用 mkdir 在 php 中创建目录,它返回 true 但是当我 ssh 进入我的服务器时,我在指定的路径中找不到目录。我已经检查了服务器中的不同位置。if (!file_exists('/tmp/tmpfileeee')) {mkdir('/tmp/tmpfileeee',0755);echo 'created';}
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

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

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


查看完整回答
反对 回复 2021-06-25
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

就这样试试:


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

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

    echo 'created';

}

mkdir创建一个文件夹而不是 file。


如果要创建文件:


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';

}

更新


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


检查open_basedir.


PHP手册指出:


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


查看完整回答
反对 回复 2021-06-25
  • 2 回答
  • 0 关注
  • 239 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信