【问题标题】:How to make directory within directory by php loop?如何通过php循环在目录中创建目录?
【发布时间】:2017-07-19 05:52:39
【问题描述】:

如何通过php循环在目录中创建目录?
示例:http://site_name/a/b/c/d
首先在 a 中创建 a 然后 b 在 b 中创建 c 然后 ....
问题在这里 a,b,c,d 根目录中创建的所有文件夹不是一个中的一个。 这是我的代码 -

<?php
 $url = "http://site_name/a/b/c/d";

 $details1 = parse_url(dirname($url));

 $base_url = $details1['scheme'] . "//" . $details1['host'] . "/";

 if ($details1['host'] == 'localhost') {
    $path_init = 2;
 }else {
    $path_init = 1;
 }

 $paths = explode("/", $details1['path']);

 for ($i = $path_init; $i < count($paths); $i++) {

   $new_dir = '';
   $base_url = $base_url . $paths[$i] . "/";
   $new_dir = $base_url;
    if (FALSE === ($new_dir = folder_exist($paths[$i]))) {
      umask(0777);
       mkdir($new_dir . $paths[$i], 0777, TRUE);

  }
 }
function folder_exist($folder)
{
  // Get canonicalized absolute pathname
    $path = realpath($folder);

  // If it exist, check if it's a directory
  return ($path !== false AND is_dir($path)) ? $path : false;
}

 ?>

【问题讨论】:

  • 到目前为止你尝试过什么?添加您的代码
  • 请重新审核,我已经加了代码,你可以理解问题。
  • 它有什么问题?请不要让我们猜测,提供清楚的信息您尝试了什么以及您的问题是什么。

标签: php mkdir


【解决方案1】:

请检查此代码。如果不退出,它将创建嵌套文件夹

<?php
 $your_path = "Bashar/abc/def/ghi/dfsdfds/get_dir.php";
 $array_folder = explode('/', $your_path);
 $mkyourfolder = "";

 foreach ($array_folder as $folder) {
   $mkyourfolder = $mkyourfolder . $folder . "/";
   if (!is_dir($mkyourfolder)) {
     mkdir($mkyourfolder, 0777);
   }
  }

希望对你有帮助

【讨论】:

    【解决方案2】:

    您实际上可以使用 mkdir PHP 函数创建嵌套文件夹

    mkdir($path, 0777, true); // the true value here = recursively
    

    【讨论】:

      【解决方案3】:

      亲爱的朋友,下面的答案已经过测试并在我的脚本中使用 -

      <?php
         $url = "http://localhost/Bashar/abc/def/ghi/dfsdfds/get_dir.php";
         $details = parse_url(dirname($url));
         //$base_url = $details['scheme'] . "//" . $details['host'] . "/";
         $paths = explode("/", $details['path']);
         $full_dir = '';
         $init = ($details['host'] == 'localhost') ? '2' : '1';
         for ($i = $init; $i < count($paths); $i++) {
             $full_dir = $full_dir . $paths[$i] . "/";
             if (!is_dir($full_dir)) {
                mkdir($full_dir, 0777);
             }
         }
      ?>
      

      【讨论】:

        猜你喜欢
        • 2013-11-29
        • 2017-10-15
        • 2019-01-22
        • 1970-01-01
        • 2021-06-15
        • 1970-01-01
        相关资源
        最近更新 更多