在 php 中尚不存在的文件夹中创建文件

2022-08-30 15:50:43

我希望我的php脚本根据日期在文件夹中创建输出文件。我这样做的方式是,它应该从另一个程序输出的文本文件中获取文件夹名称/文件名,我无法编辑。

因此,它从中获取数据的文件如下所示:

data/newfolder/10302008/log_for_Today.txt | 24234234

只有多行,我只需要脚本逐行浏览它,获取文件夹/文件名并在该位置创建一个具有该名称的空文件。

目录全部为 777。现在我知道如何在文件夹中创建一个新的空exe文件,但似乎不知道如何首先创建文件夹,然后在其中的exe,任何想法?


答案 1
if(!file_exists(dirname($file)))
    mkdir(dirname($file), 0777, true);
//do stuff with $file.

使用第三个参数 mkdir(),这使得它以递归方式创建目录。


答案 2

$directories = explode( '/', $path );

您可以拆分路径以获取单个目录名称。然后遍历数组并创建设置 chmod 777 的目录。(执行php的系统用户必须有能力做到这一点。

$file = array_pop( $directories );
$base = '/my/base/dir';

foreach( $directories as $dir )
{

   $path = sprintf( '%s/%s', $base, $dir )
   mkdir( $path ); 
   chmod( $path, 777 );
   $base = $path;

}

// file_put_contents or something similar
file_put_contents( sprintf( '%s/%s', $base, $file ), $data );

这里的问题是你可能不会从php脚本中设置chmod。

另一种方法是使用FTP。用户将 FTP 登录数据传递给脚本,并使用 FTP 功能来管理文件。

http://www.php.net/FTP


推荐