simplecontent

PHP Snippets und Beispiele

Inhaltsverzeichnis A-Z Register
Beispiel ausführen

$_FILES-Array (Dateiupload)

Da PHP das $_FILES-Array bei mehrdimensionalen Feldnamen etwas merkwürdig organisiert bietet es sich an es zunächst umzustellen damit man mit dem Array vernünftig arbeiten kann. Das erledigt die folgende Funktion. Die Idee stammt von PHP.net, ich habe den Code lediglich etwas straffer zusammengeschrieben und Kleinigkeiten ergänzt. Das PHP Code Beispiel:
<?php

/**
*/


function rearrangeFILES(&$stack$value=NULL$key=NULL)
{

 if (
$key === NULL):
     
$stack = array();
    foreach (
$_FILES as $k1 => $v1):
        
$stack[$k1] = array();
        foreach (
$v1 as $k2 => $v2):
                 
rearrangeFILES($stack[$k1], $v2$k2);
        endforeach;
    endforeach;
    return 
$stack;
 else:

   if (
is_array($value)):

       foreach (
$value as $k => $v):
           if (
is_array($v)):

               
rearrangeFILES($stack[$k], $v$key);
           else:

               
$stack[$k][$key] = $v;
           endif;
       endforeach;
   else:
       
$stack[$key] = $value;
   endif;
 endif;
}


print 
'<pre>';

print_r($_FILES);
print 
'<hr>';
rearrangeFiles($tmp);
print_r($tmp);
print 
'</pre>';

echo <<< EOT
<form method="post" enctype="multipart/form-data" action="{$_SERVER['REQUEST_URI']}">
<input type="file" name="picture[x][y][z]">
<input type="file" name="picture[a][b][c]">

<input type="submit">
</form>
EOT;

?>

Dieses PHP Snippet soll in erster Linie als Beispiel und Anregung für eigene Bemühungen dienen.
Gerne darf man es für Projekte aller Art benutzen.
Möchte jemand das Snippet also solches in ähnlicher oder anderer Form veröffentlichen ist ein kleiner Hinweis auf simplecontent.net nicht zuviel verlangt oder Herr Koch?
Für die Abwesenheit von Fehlern kann natürlich keine Gewähr gegeben werden.