我想在指定的给定文件夹路径的所有子文件夹中创建一个空的index.php文件。
也就是说,给定文件夹为/dir/content
,包含许多子文件夹,我希望将index.php
添加到所有子文件夹中。如果已存在,请跳过。
实现这一目标的php函数就是我想要的。
答案 0 :(得分:0)
使用php复制功能。这是文档,
这是一个例子,
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)
您可以使用RecursiveIteratorIterator和RecursiveDirectoryIterator。
以下代码将在每个目录中创建一个空的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');
}
}
}