foreach() und eigene Funktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • foreach() und eigene Funktion

    Hallo Forum!

    Am besten gebe ich euch zuerst den Code von meinen 2 Files:

    links.php
    PHP-Code:
    <?php

    echo"
    <form action=\"exploding.php\" method=\"post\">
    <textarea name=\"s\" rows=\"10\" size=\"400\"></textarea>
    <br>
    <input type=\"submit\" value=\"Test\">
    </form>
    "
    ;

    ?>


    exploding.php
    PHP-Code:
    <?php

    $_POST
    ["s"] = $s;

    // Trennen der einzelnen -Links und erfassen der Gesamntzahl von Links
    $links explode("\n",$s);

    $all count($links);

    echo
    "<h1><font color=\"red\">Link-Parsing Engine</font></h1><hr>";

    // Parsen und Ausgeben aller Links
    foreach ($links as $links) {

    // Link parsen
    $teile explode("|"$links);

        
    $hm        $teile[0]; // hm://
        
    $file        $teile[1]; // file
        
    $name        $teile[2]; // filename
        
    $size        $teile[3]; // filesize
        
    $hash        $teile[4]; // hash

        
    $extension explode("."$name);  // extension
        
    $count=count($extension);
            
    $ext        $extension[$count-1]; // Dateiname
            
    // Create a human file size for the byte-number        
                
    function humanize_size ($size$rounder 0)
    {
        
    $sizes   = array('Bytes''Kb''Mb''Gb''Tb''Pb''Eb''Zb''Yb');
        
    $rounders = array(012223333);
        
    $ext $sizes[0];
        
    $rnd $rounders[0];

        if (
    $size 1024)
        {
          
    $rounder 0;
          
    $format =  '%.' $rounder 'f Bytes';
        }
        else
        {
          for (
    $i=1$cnt=count($sizes); ($i $cnt && $size >= 1024); $i++)
          {
             
    $size      $size 1024;
             
    $ext       $sizes[$i];
             
    $rnd       $rounders[$i];
             
    $format =  '%.' $rnd 'f ' $ext;
          }
        }

        if (!
    $rounder)
        {
          
    $rounder $rnd;
        }

        return 
    sprintf($formatround($size$rounder));
    }

    $finalsize humanize_size($size);
    // End of human-size creator 



    ######################################### END OF PARSiNG #########################################

    echo"
    <br><br>
    <b>Datei</b>: 
    $name<br>
    <b>Dateityp</b>: 
    $ext<br>
    <b>Dateigrösse:</b> 
    $finalsize<br><br>
    <b>Ganzer Link:</b><br> 
    $links

    <hr>
    "
    ;

    }


    echo
    "
    <br>
    <b>Anzahl Links:</b> 
    $all

    "
    ;

    ?>
    Mein Rpoblem liegt bei der Funktion "humanize_size". Und zwar wenn man mehr als einen Link im ersten File eingibt und sie dann absendet kommt im File "exploding.php" folgender Fehler:

    Fatal error: Cannot redeclare humanize_size() (previously declared in jaja:29) in jaja on line 29

    Das liegt ja daran, dass ich durch foreach() die Funktion mehrmals include und es somit zu einem Error kommt. Wie kann ich das jetzt lösen? Ich muss ja irgendwie ne variabel an dem Funktionsnamen anhängen, die immer um eins grösser wird. Aber wie kann ich das realisieren?

    Danke schon mal für eure Antworten.
    Zuletzt geändert von pascal007; 28.04.2007, 17:11.

  • #2
    wie wär's, wenn du die funktion einfach außerhalb der schleife deklarierst, so wie es sich gehört?

    Kommentar


    • #3
      Uups... ja so geht's natürlich . Anfängerfehler... danke für die Hilfe .

      Kommentar

      Lädt...
      X