如何以快速方式从多个目录中运行相同的php文件?

时间:2012-06-02 21:04:24

标签: php directory glob mkdir

在我的图书馆文件夹中,有近200个图书文件夹,如:

--books (folder)  
  |--book1(folder)
  |--book2(folder)
  |--(this continues until 200)  

我想要的是我需要通过从mysql中获取有关文件夹的数据来在200文件夹中创建一些目录。我可以手动制作,但逐个制作是非常低效的。

我编码create_folder.php并插入book1文件夹以查看它是如何产生结果的:

$current_folder = basename(dirname(__FILE__));

// I choose which directories are inserted.
$sql = "SELECT directory FROM ..............WHERE folder = {$current_folder} ";

$result = mysql_query($sql);

while ($row = mysql_fetch_array($result)) {
  mkdir($row['directory']);
}  

所以,在我的book1文件夹中,我通过数据库创建了目录 之后,我创建了glob.php文件,以便自动在所有200个目录中插入create_folder.php。(我将glob.php放在主books folder中。这里:

$content = file_get_contents("create_folder.php");

$files = glob( './*' );
foreach( $files as $file ) {
if( is_dir( $file ) && is_writable( $file ) ) {
    file_put_contents( $file . '/create_folder.php', $content );
    }
}

现在,在200个文件夹中,有create_folder.php.问题是,我必须在所有200个目录中运行create_folder.php才能创建子目录。有没有快速的方式来运行它?感谢...

1 个答案:

答案 0 :(得分:2)

$files = glob( './*' );
foreach( $files as $file ) {
if( is_dir( $file ) && is_writable( $file ) ) {
$output = exec('php -l '.$file.'/create_folder.php',$function_output,$return);
print $output."\n";
print $return."\n";
var_dump($function_output);
    }
}

在根目录中运行此命令。因此,如果您的站点位于/ home / user / site1,/ home / user / site2,则从/ home / user运行。