我有一个如下所示的数组结构。我想使用此数组在文件夹中创建一个文件夹。我该怎么做?
$folder=array(4) {
[0]=>
string(3) "img"
[1]=>
string(7) "dummies"
[2]=>
string(6) "slides"
[3]=>
string(6) "01.jpg"
}
我试过这样但是它没有解决我的问题..
$imglength=count($folder);
$i=0;
$fold=$i<($imglength-1);
while(!file_exists($fold))
{
mkdir($fold);
}
答案 0 :(得分:0)
嗯,这是一种做法。可能不是最有效的方式,但它确实有效。
<?php
$folders = Array(
Array("img", "dummies", "slides", "01.jpg"),
Array("img_24", "dummy", "slideshows", "65.png")
);
for ($i=0;$i<count($folders);$i++) {
for ($j=0;$j<count($folders[$i]);$j++) {
$path .= $folders[$i][$j] . "/";
mkdir($path);
}
unset($path);
}
?>
它基本上读取数组并将每个名称放入一个变量中,该变量自身扩展以便创建路径。当然,不会创建JPEG文件,但是您可以使用file_put_contents左右这样做,只需将另一个数组值称为“文件”而不是默认的“文件夹”定义。然后当它读取定义时,它会自动创建一个文件而不是文件夹,然后写入位图数据。
编辑:对于文件创建,您可以像我上面解释的那样使用file_put_contents,我做了一小段代码来演示使用。
<?php
$folders = Array(
Array("img", "dummies", "slides", Array("01.jpg", "11abcdefghijklmnopqrstuvxyz")),
Array("img_24", "dummy", "slideshows", Array("65.png", "22abcdefghijklmnopqrstuvxyz"))
);
for ($i=0;$i<count($folders);$i++) {
for ($j=0;$j<count($folders[$i]);$j++) {
$path .= (gettype($folders[$i][$j]) != "array" ? $folders[$i][$j] . "/" : $folders[$i][$j][0]);
if (gettype($folders[$i][$j]) != "array") {
mkdir($path);
}else{
file_put_contents($path, (isset($folders[$i][$j][1]) ? $folders[$i][$j][1] : "nil"));
}
}
unset($path);
}
?>
JPEG文件的第二个值用于文件的内容。您可以通过读取正在使用的文件将位图数据放入其中,然后将其作为值放入。这样你就可以正确地创建图像了。
答案 1 :(得分:0)
<html>
<body>
<form method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
$tmp_name = $_FILES["file"]["tmp_name"];
}
$folders = array("img","dummies","slides");
foreach($folders as $folder)
{
$folder_path .= $folder."/";
while(!file_exists($folder_path))
{
mkdir($folder_path);
}
}
move_uploaded_file($tmp_name, "$folder_path/".$_FILES['file']['name']);
答案 2 :(得分:0)
试试
<?php
$folder=array(array("img","dummies","slides","01.jpg"));
$imglength=count($folder);
$i=0;
$fold=$i<($imglength-1);
for($k=0;$k<$imglength;$k++)
{
$sub_array_count=count($folder[$k]);
$tmp='';
for($j=0;$j<$sub_array_count;$j++)
{
if($j==0)
{
mkdir($folder[$k][$j]);
}else
{
echo $folder[$k][($j-1)];
echo "<br>";
echo $tmp.=$folder[$k][($j-1)]."/";
mkdir($tmp.$folder[$k][$j]);
}
}
}
?>