很抱歉打扰你。我正在运行mkdir来复制我存储在数据库中的目录。
如果我在php页面上显示数据,目录如下所示:
element1/Content/EPAC/PROD
element1/Content/EPAC/TEST
element1/Content/EPAC_SG/PROD
element1/Content/EU/PROD
element1/Content/EU/TEST
以上是数据的子集。当我遍历它时,上面的子集发生了什么,它创建了目录element1 / Content / EPAC / PROD但是忽略了element1 / Content / EPAC / TEST和element1 / Content / EPAC_SG / PROD,然后它创建了element1 / Content / EU / PROD但忽略了element1 / Content / EU / TEST等,并继续像这样循环。我正在使用的代码是:
foreach($NSRarray as $value)
{
mkdir("ftpfolders/$value", 0700, true);
}
*上面的$ value变量是从DB获取的'element1 / Content / EPAC / PROD'记录。
有什么想法吗?提前谢谢,Ste
答案 0 :(得分:1)
我会将其分成一次生成一个目录。
将数组转换为某种形式。像
$dics=array(
'element1' => array(
'Content' => array(
'EPAC' => array('PROD', 'TEST'),
'EPAC_SG' => array('PROD')
'EU' => array('PROD', 'TEST')
)
)
);
然后循环遍历它,从array_keys($ dics)开始并创建目录(如果不存在)。 继续使用array_keys($ dics ['element1']),然后重复它直到你到达内心的孩子。
希望这有帮助。
答案 1 :(得分:1)
使用此代码,这将根据您的要求为您提供适当的文件夹结构
<?php
$NSRarray = array('element1/Content/EPAC/PROD', 'element1/Content/EPAC/TEST', 'element1/Content/EPAC_SG/PROD','element1/Content/EU/PROD','element1/Content/EU/TEST');
foreach($NSRarray as $value)
{
$getFolders = explode('/' , $value);
$mainFoldername = "ftpfolders";
$countfolder = 0;
$countfolder = count($getFolders);
$tempName = "";
$i = 0;
for($i == 0; $i < $countfolder; $i++){
$tempName .= $getFolders[$i];
if (!file_exists("$mainFoldername/$tempName")) {
mkdir("$mainFoldername/$tempName", 0700, true);
}
$tempName .= '/';
}
}
?>