#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?
#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.