[PHP] for each

Dieses Thema im Forum "Webentwicklung" wurde erstellt von esage, 30. Oktober 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 30. Oktober 2006
    for each

    Habe keinen besonders passenden Titel gefunden, daher nehme ich als Titel einfach den PHP-Befehl, mit der ich mir vorstelle, mein Problem zu lösen ^^

    Ich brauche ein kleines Script, mit dem ich aus einem mehrzeiligen Textfeld für jede Zeile die gleiche Formatierung gewinne. Hoffe das ist verständlich, aber hier ein Beispiel:

    PHP:
    <form name="form" method="post" action="<? $PHP_SELF ?>">
    Bilder:<br>
    <textarea name="bilder" cols="38" rows="3"></textarea><br><br>

    <input type="submit" name="Submit" value="Generieren"> <input type="reset" name="Submit2" value="Reset">
    </form>

    <?php

    if( $Submit ){

    if (
    $bilder  !=  "" ) { 
    echo 
    " $img$bilder$img2 <br><br><br>"
    }  
    else  

    echo 
    "" ;
    }

    }

    ?>
    So, ist halt noch ganz einfach ^^ Also, wenn ich nun in das Textfeld mehrere Zeilen eingebe mit URLs zu Bildern, dann hätte ich gerne für jede Zeile ein Bild. Meine geringen PHP-Kenntnisse reichen leider nicht dazu aus, sowas simples zu programmieren Also vielen Dank schon mal für eure Hilfe ^^

    Eine positive Bewertung gibt's auf jeden Fall
     
  2. 30. Oktober 2006
    AW:
    PHP:
     for each[/b]

    [PHP]
    <!-- Ich denke, hierzu muss nichts mehr gesagt werden -->
    <form method="POST" action=" <?=$_SERVER [ 'PHP_SELF' ]; ?> ">
        <textarea name="textfeld"></textarea>
        
        <br><br>
        
        <input type="submit">
        
        <br><br>
    </form>    

       <?php
       
       $textfeld 
    $_POST [ 'textfeld' ];
       
       
    //Diese Funktion trennt einen String in ein Array auf. 
       //('\n' steht beim Textfeld für neue Zeile)
       
    $textfeld  explode ( "\n" $textfeld );

       
    //Testweise Arraystruktur ausgeben
       
    print_r ( $textfeld );
       
       
    //Zählen, aus wie vielen Elementen das Array besteht
       //Dann testweise ausgeben
       
    $num  count ( $textfeld );
       echo 
    "<br> Elemente im Array: " . $num . "<br>" ;
       
       
    //Nun jedes Arrayelement abarbeiten. 
       //Da ich nicht weiß, was du damit vorhast, gebe ich es vorsichtshalber mit for() aus.
       
    echo  "<br>Jedes einzeln:<br>" ;
       
       for(
    $i  0 $i  <=  $num $i ++) {
           echo 
    '<b>$textfeld[' . $i . ']:</b>' ;
           echo 
    $textfeld [ $i ];
           echo 
    "<br>" ;
       }

       
    //wenn du nicht willst, 
       //dass leere Zeilen ausgegeben werden, 
       //baue am besten noch eine Kontrollstruktur ein:
       
          
    echo  "<br>Nun ohne Leerzeilen:<br>" ;
       
       for(
    $i  0 $i  <=  $num $i ++) {
           if(!
    trim ( $textfeld [ $i ]) ==  "" ) { 
               echo 
    '<b>$textfeld[' . $i . ']:</b>' ;
               echo 
    $textfeld [ $i ];
               echo 
    "<br>" ;
           }
       }
       
    //das trim() sorgt dafür, dass auch zeilen, die nur Leerzeichen enthalten gelöscht werden
       
    ?>
    Ich hoffe, damit war ich dir eine Hilfe
     
  3. 30. Oktober 2006
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: for each

    Bei der Ausgabe erhalte ich jetzt folgendes:

    Code:
    Array ( [0] => bild1 [1] => bild2 )
    Elemente im Array: 2
    
    Jedes einzeln:
    $img$uppimage$img2[0]:$img$uppimage$img2[$i]
    $img$uppimage$img2[1]:$img$uppimage$img2[$i]
    $img$uppimage$img2[2]:$img$uppimage$img2[$i]
    
    Nun ohne Leerzeilen:
    $img$uppimage$img2[0]:$img$uppimage$img2[$i]
    $img$uppimage$img2[1]:$img$uppimage$img2[$i]
    Hier ist der Quellcode von der entsprechenden Stelle:

    PHP:
    //Bild

    $uppimage  $_POST [ 'uppimage' ];
       
       
    //Diese Funktion trennt einen String in ein Array auf. 
       //('\n' steht beim Textfeld für neue Zeile)
       
    $uppimage  explode ( "\n" $uppimage );

       
    //Testweise Arraystruktur ausgeben
       
    print_r ( $uppimage );
       
       
    //Zählen, aus wie vielen Elementen das Array besteht
       //Dann testweise ausgeben
       
    $num  count ( $uppimage );
       echo 
    "<br> Elemente im Array: " . $num . "<br>" ;
       
       
    //Nun jedes Arrayelement abarbeiten. 
       //Da ich nicht weiß, was du damit vorhast, gebe ich es vorsichtshalber mit for() aus.
       
    echo  "<br>Jedes einzeln:<br>" ;
       
       for(
    $i  0 $i  <=  $num $i ++) {
           echo 
    '$img$uppimage$img2[' . $i . ']:' ;
           echo 
    '$img$uppimage$img2[$i]' ;
           echo 
    "<br>" ;
       }

       
    //wenn du nicht willst, 
       //dass leere Zeilen ausgegeben werden, 
       //baue am besten noch eine Kontrollstruktur ein:
       
          
    echo  "<br>Nun ohne Leerzeilen:<br>" ;
       
       for(
    $i  0 $i  <=  $num $i ++) {
           if(!
    trim ( $uppimage [ $i ]) ==  "" ) { 
               echo 
    '$img$uppimage$img2[' . $i . ']:' ;
               echo 
    '$img$uppimage$img2[$i]' ;
               echo 
    "<br>" ;
           }
       } 

    //Bild-Ende
    Im Prinzip ist das ja gar nicht so falsch.. Nur normalerweise sollte mit dem $img und $img2 noch was passieren.

    PHP:
    $img  "{bild-down: https://xup.in/dl,20398461/_img2}

    {img-src: "
    ;
    $img2  "}" ;
     
  4. 31. Oktober 2006
    AW: for each

    wieso schreibst du das innen string???
    und die schlüsselangabe bezieht sich auf das array ... lies dir am besten nochmal das qnet tut durch
    PHP:
    <? php
    for( $i  0 $i  <=  $num $i ++) {
           echo 
    '$img$uppimage[' . $i . ']$img2:' ;
           echo 
    $img$uppimage [ $i ] $img2 ;
           echo 
    "<br>" ;
       }
    ?>
    und oben im form tag müsst das so stehn:
    PHP:
    <form method="POST" action=" <?  echo  $_SERVER [ 'PHP_SELF' ];  ?> "> 
     
  5. 31. Oktober 2006
    AW: for each

    @lolkind, du am besten auch
    Code:
     echo '$img$uppimage$img2['.$i.']:';
     echo '$img$uppimage$img2[$i]';
    
    Das was in single quotes steht wird nicht interpretiert sondern ausgegeben.
    echo $img . $uppimage . $img2[$i];
    oder
    echo "$img$uppimage{$img2[$i]}";

    FlowFlo
     
  6. 31. Oktober 2006
    AW: for each

    @flowflo: kp was du meinst, habs doch gar net in ' ' geschrieben?
    verknüpfungsoperator hab cih vergessen ...

    also so
    PHP:
    <? php
    for( $i  0 $i  <=  $num $i ++) {
           echo 
    '$img$uppimage[' . $i . ']$img2:' ;
           echo 
    $img . $uppimage [ $i ]. $img2 ;
           echo 
    "<br>" ;
       }
    ?> 
     
  7. 31. Oktober 2006
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: for each

    Vielen Dank schon mal, habe jetzt noch ein letztes Problem

    PHP:
    //Bild

    $uppimage  $_POST [ 'uppimage' ];
       
       
    //Diese Funktion trennt einen String in ein Array auf. 
       //('\n' steht beim Textfeld für neue Zeile)
       
    $uppimage  explode ( "\n" $uppimage );

       
    //Testweise Arraystruktur ausgeben
       //print_r($uppimage);
       
       //Zählen, aus wie vielen Elementen das Array besteht
       //Dann testweise ausgeben
       
    $num  count ( $uppimage );
       
    //echo "<br> Elemente im Array: ".$num."<br>";
       
       //Nun jedes Arrayelement abarbeiten. 
       //Da ich nicht weiß, was du damit vorhast, gebe ich es vorsichtshalber mit for() aus.
       
    echo  "<br>Jedes einzeln:<br>" ;
       
        for(
    $i  0 $i  <=  $num $i ++) {
            if(!
    trim ( $uppimage [ $i ]) ==  "" ) {
                   echo 
    $img . $uppimage [ $i ]. $img2 ;
                   echo 
    "<br>" ;
            }
       }

    //Bild-Ende
    Ausgabe ist jetzt folgende:

    Code:
    {bild-down: https://xup.in/dl,19452900/bild1}
    
    {img-src: bild1 }
    {bild-down: https://xup.in/dl,40309441/bild2}
    
    {img-src: bild2}
    Wie kriege ich nun noch das Leerzeichen nach bild1 weg?
     
  8. 31. Oktober 2006
    AW: for each

    z.B. mit
    PHP:
    trim ( $uppimage [ $i ])
    MfG Schmitz
     
  9. 31. Oktober 2006
    AW: for each

    Wo soll ich das denn einsetzen?

    Edit: Das steht doch da auch schon, oder?

    PHP:
         for( $i  0 $i  <=  $num $i ++) {
            if(!
    trim ( $uppimage [ $i ]) ==  "" ) {
                   echo 
    $img . $uppimage [ $i ]. $img2 ;
                   echo 
    "<br>" ;
            }
       }
     
  10. 31. Oktober 2006
    AW: for each

    ja, aber damit wird nur kontrolliert, ob der string leer ist
    finds etwas unschön geschrieben, denn es gibt ja nicht umsonst den operator !=
    so, und hier die geänderte schleife:
    PHP:
         for( $i  0 $i  <=  $num $i ++) {
            if(
    trim ( $uppimage [ $i ]) !=  "" ) {
                   echo 
    $img . trim ( $uppimage [ $i ]). $img2 ;
                   echo 
    "<br>" ;
            }
       }
     
  11. 31. Oktober 2006
    AW: for each

    Gut, danke an alle, die geholfen haben :] Habe euch selbstverständlich positiv bewertet!

    Ich schließe dann mal hier.
     
  12. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.