2017-02-28 4 views
-3

phpループでディレクトリ内のディレクトリを作る方法は?
例:http://site_name/a/b/c/d
最初に作成し、その後、その後内のB、C、その後bが....
問題は、B、C、D 1の中ではない1つのルートディレクトリに作成されたすべてのフォルダここにある内。phpループでディレクトリ内のディレクトリを作る方法は?

<?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; 
} 

?> 
+1

を?あなたのコードを追加してください – tausun

+0

もう一度レビューしてください、私はコードを追加しました、あなたは問題を理解することができます。 –

+1

何が問題なのですか?あなたが試したこととあなたの問題が何であるかという明確な情報を私たちに推測させないでください。 – Burki

答えて

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); 
    } 
    } 

を終了していない場合には、ネストされたフォルダが作成されます、それはあなたの次の答えは私のスクリプトでテストされ、使用されている

+0

正常に動作しています。ありがとう。 –

0

親愛なる友人を助けることを願っています - あなたがこれまでに試してみました何

<?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); 
     } 
    } 
?> 
関連する問題