我正在用mkdir在php中创建目录,它返回true,但是当我ssh进入服务器时,我无法在指定路径中找到目录。
我已经检查了服务器中的其他位置。
if (!file_exists('/tmp/tmpfileeee')) {
mkdir('/tmp/tmpfileeee',0755);
echo 'created';
}
答案 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';
}
更新
在某些服务器上,tmp
和temp
文件夹受到限制。
检查open_basedir
。
PHP手册状态:
如果此处指定的目录不可写,PHP将退回到系统默认的临时目录。如果open_basedir打开,则必须允许系统默认目录才能成功上载。