[PHP5] Zeilenumburch bei Textdarstellung in <textarea>

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

  • [PHP5] Zeilenumburch bei Textdarstellung in <textarea>

    Hallo allerseits...

    habe da ein kleines Problem was mich nicht los lässt...

    Ich habe ein kleines Script was Files auslist. Es handelt sich bei dem File um eine m3u-Playlist. Es werden Einträge herraussortiert die nicht benötigt werden. Vor jedem Interpreten wird eine Numemr vorgesetzt, dann INterpret und der Titel. Dann eine neue Zeile, und das ganez wieder von vorne. DIe Ausgabe soll dann in einem <textarea>-Feld erfolgen, damit die Playlist noch einmal kontroliert und evt. korrigiert werden kann. Anschließend soll das ganze per Submit-Button in eine DB geschrieben werden.

    Das ganze klappt soweit ganz gut...nur ein Problem habe ich noch:

    In dem Textfeld werden keine Zeilenumrüche dargestellt. Egal was ich versucht habe, ob <br> oder \n wird auch immer in dem Textfeld angezeigt. es wird also als normaler Text verarbeitet und nicht als Code. Sachen wie preg_match oder nl2br funktionieren auch nicht (wobei nl2br ja auch eigenltich ausschließlich für die ausgabe auf der eigentlichen Seite gedacht ist...)

    Hat jemand zufällt eine Idee wie ich das Problem lösen kann? Anderweitig müsste ich dann den zwischenschritt machen dass der Inhalt des Files auf einer Seite angezeigt wird und man das ganze dann per kopieren in die Zwischenablage dann in das TExtfeld kopiert. Die erste Idee von mir ist da natürlich schon die elegantere...

    hier noch der Code des Scripts zum auslesens des Files:

    PHP-Code:
    // öffnen & auslesen des Files mit extrahieren der benötigten Daten und deren Ausgabe 
                
                
    if(is_resource($handleFile=@fopen('' $upfile_name '',"r")))
            {  
    $arrFile=array();
               while(
    $line=fgets($handleFile))
                  if
                  (  
    $line[0]!='#' &&
                     
    preg_match('#([^/\\\]+)\.[^/\\\]+$#s',$line,$arrMatch
                  )
                     
    array_push($arrFile,$arrMatch[1]);                      
               
    fclose($handleFile);
                   if(
    count($arrFile)>0)
                   {  echo 
    "";
                      
                      
    $i 1;
                      foreach(
    $arrFile as $file)
                      { 
                        
    //Ausgabe des Files Zeilenweise
                                            
    echo '' $i '. ' $file '';
                        
    $i $i +1;
                      }                        

                   } 

                
                } 
    Wäre klasse wenn jemand eine Antwort wüsste...

    Danke schon mal für die Mühe

    Lapje
    Zuletzt geändert von Lapje; 28.01.2008, 15:21.

  • #2
    Egal was ich versucht habe, ob <br> oder \n wird auch immer in dem Textfeld angezeigt. es wird also als normaler Text verarbeitet und nicht als Code.
    Liegt vielleicht dran, dass <textarea> keine weiteren Tags akzeptiert sondern nur Plain Text. Zeilenumbrüche müssten aber gehen.
    Wie hast du denn probiert diese in den String zu schreiben? V.a. welche Art der Anführungszeichen hast du dazu benutzt?
    PHP-Code:
    echo '\r\n';
    //ergibt \r\n
    echo "\r\n";
    //ergibt einen Zeilenumbruch 
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Hai..

      danke schon mal für die Antwort...

      Das PRoblem dabei ist - denke ich mal - zudem, dass ich nicht genau weiß wo ich den Zeilenumbruch reinmachen müsste (lerne ja noch..;-) ).

      Habe das hier in verschiedenen möglichkeiten versucht
      PHP-Code:

       
      echo '' $i '. ' $file '<br /> ';
       echo 
      '' $i '. ' $file '\n';
       echo 
      '' $i '. ' $file '\r\n';
       echo 
      '' $i '. ' $file '/\n\n'
      Aber ich denke mal dass das der völlig falsche Ansatz war...

      Kommentar


      • #4
        Habs jetzt

        PHP-Code:
        echo "" $i ". " $file "\r\n"
        Also - " - anstatt - ' - verwendet...und es funzt...

        Und wieder was dazugelernt...

        Warum ist da denn der Unterschied so groß? Ich benutze nämlich bei PHP gerne die normalen Anführungsstriche, die doppelten lasse ich dann lieber für die eigentlichen HTML-Tags...damit da nichts verändert wird...

        Danke für den Denkanstoß..;-)

        Nur ein Problem bleibt noch...habe ich vergessen zu erwähnen...irgendwo in diesem Script muss etwas sein wo als erstes eine Lehrzeile ausgegeben wird...aber ich finde das nicht...ich habe auch nirgends vorher einen Zeilenumbruch gefunden...oder habe ich was übersehen?

        Lapje
        Zuletzt geändert von Lapje; 28.01.2008, 15:40.

        Kommentar


        • #5
          Warum ist da denn der Unterschied so groß? Ich benutze nämlich bei PHP gerne die normalen Anführungsstriche, die doppelten lasse ich dann lieber für die eigentlichen HTML-Tags...damit da nichts verändert wird...
          Steht im Manual. Generell ist auch nichts dagenen einzuwenden, einfache ' zu nehmen. Nur bei Steuerzeichen muss man dann ein bisschen vorsichtig sein. Wobei du auch einfach
          PHP-Code:
          echo '<tag attr="xyz">bla
          bla</tag>'

          schreiben kannst. Dann haste auch keine Probleme mit Umbrüchen.

          irgendwo in diesem Script muss etwas sein wo als erstes eine Lehrzeile ausgegeben wird...aber ich finde das nicht...ich habe auch nirgends vorher einen Zeilenumbruch gefunden...oder habe ich was übersehen?
          Woher weißt du das? Wie äußert sich das?
          PHP-Code:
          echo ""
          Sowas muss nun wirklich nicht sein.

          Kommentar


          • #6
            Ja, stimmt...sorry, das war noch von einer Kontrollausgabe...ähm...*pfeif*

            Aber daran hats nicht gelegen...

            Ich erkenne dass daran dass in dem Textfeld halt als erstes eine Lehrzeile kommt und dann erst die Liste...

            Habs aber gerade gefunden...wieder so eine komische Sache:

            PHP-Code:
            Playlist<br />
            <textarea name="s_playlist" cols="50" rows="10">
            <?php
            Zwischen der Textares und dem <?php war eine Leerzeile...und das muss anscheinend auch so im Textfeld dargestellt worden sein...jetzt ist es so wie oben und es funzt bestens..;-)

            Danke noch mal an alle....hab wieder einiges dazugelernt und weiß so fürs nächste mal bescheid

            Lapje

            Kommentar


            • #7
              Zwischen der Textares und dem <?php war eine Leerzeile...und das muss anscheinend auch so im Textfeld dargestellt worden sein...
              Klar. wenn du da "abc" hingeschrieben hättest, wäre das ja auch dargestellt worden.

              Kommentar

              Lädt...
              X