首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在php中尚不存在的文件夹中创建文件

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

Stack Overflow用户
提问于 2008-11-11 20:49:07
回答 4查看 36.3K关注 0票数 26

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

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

代码语言:javascript
复制
data/newfolder/10302008/log_for_Today.txt | 24234234

只有几行,我只需要脚本逐行遍历它,抓取文件夹/文件名,并在该位置创建一个具有该名称的空文件。

目录都是777。现在我知道如何在文件夹中创建一个新的空exe文件,但似乎不知道如何先创建文件夹,然后在其中创建exe,有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2008-11-11 21:07:05

代码语言:javascript
复制
if(!file_exists(dirname($file)))
    mkdir(dirname($file), 0777, true);
//do stuff with $file.

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

票数 79
EN

Stack Overflow用户

发布于 2008-11-11 21:06:15

使用

代码语言:javascript
复制
$directories = explode( '/', $path );

您可以拆分路径以获得单个目录名。然后遍历数组并创建目录设置chmod777。(执行php的系统用户必须能够执行此操作。)

代码语言:javascript
复制
$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

票数 4
EN

Stack Overflow用户

发布于 2015-05-20 06:39:40

虽然为时已晚,但我发现了这个问题,我有一个解决方案,这是一个示例代码,无论你的文件有多深,它都能很好地工作。如果您在Windows服务器上运行,则应该更改第1行和第3行的目录分隔符。

代码语言:javascript
复制
$pathToFile = 'test1/test2/test3/test4/test.txt';
$fileName = basename($pathToFile);
$folders = explode('/', str_replace('/' . $fileName, '', $pathToFile));

$currentFolder = '';
foreach ($folders as $folder) {
    $currentFolder .= $folder . DIRECTORY_SEPARATOR;
    if (!file_exists($currentFolder)) {
        mkdir($currentFolder, 0755);
    }
}
file_put_contents($pathToFile, 'test');

致以最好的问候,格奥尔基!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/282093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档