在给定文件夹

时间:2018-01-11 11:11:52

标签: php

我想在指定的给定文件夹路径的所有子文件夹中创建一个空的index.php文件。

也就是说,给定文件夹为/dir/content,包含许多子文件夹,我希望将index.php添加到所有子文件夹中。如果已存在,请跳过。

实现这一目标的php函数就是我想要的。

3 个答案:

答案 0 :(得分:0)

使用php复制功能。这是文档,

php copy function

这是一个例子,

function recurse_copy($src,$dst) {  
    $dir = opendir($src); 
    while(false !== ( $file = readdir($dir)) ) { 
        if (( $file != '.' ) && ( $file != '..' )) { 
            if ( is_dir($src . '/' . $file) ) { 
                recurse_copy($src . '/' . $file,$dst . '/' . $file); 
            } 
            else { 
                copy($src . '/' . $file,$dst . '/' . $file); 
            } 
        } 
    } 
    closedir($dir); 
    //echo "$src"; 
} 
$src = "/home/user/public_html/dir/subdir/source_folder/";  
$dst = "/home/user/public_html/dir/subdir/destination_folder/";  
recurse_copy($src,$dst);

答案 1 :(得分:0)

您必须使用scandir功能:

putFiles('/startDir');

function putFiles($path)
{
    fopen("$path/index.php", "w");

    $files = scandir($path);
    unset($files[0]); // remove .
    unset($files[1]); // remove ..

    foreach($files as $filePath)
    {
        if(is_dir("$path/$filePath"))
        {
            putFiles("$path/$filePath");
        }
    }
}

答案 2 :(得分:0)

您可以使用RecursiveIteratorIteratorRecursiveDirectoryIterator

以下代码将在每个目录中创建一个空的index.php文件(如果不存在)。

<?php
$root = './';

$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($root), RecursiveIteratorIterator::SELF_FIRST);
foreach ($files as $file) {
    $file = realpath($file);
    if (is_dir($file) === true) {
        if (!file_exists($file.'/index.php')) {
            echo 'CREATED: '.$file.'/index.php</br>'.PHP_EOL;
            file_put_contents('', $file.'/index.php');
        }
    }
}