Sonderzeichen aus einer .txt richtig auslesen.

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

  • Sonderzeichen aus einer .txt richtig auslesen.

    Hallo,

    ich habe ein Galeriescript bei dem die Kommentare aus einer .txt Datei ausgelesen werden. Das Prinzip funktioniert so:

    projekt1 - Ordner mit Bildern
    projekt1.txt - Textdatei für Kommentare (jede Zeile entspr. einem Bild)
    links.txt - Textdatei zur Generierung der Links für (projekt1, projekt2, ... usw)

    Sobald das JavaScript greift (beim ersten anklicken auf "next") werden Sonderzeichen wie ö, ü, ä ... richtig dargestellt. Deshalb vermute ich das im PHPscript der Fehler liegt, der bei der ersten Darstellung eines "projektes" die Sonderzeichen in der dazugehörigen .txt falsch darstellt.

    Vielen Dank für Eure Hilfe


    CODE WEITER UNTEN
    Zuletzt geändert von Mr.Mittel; 01.12.2006, 21:35.

  • #2
    Code UMBRECHEN und bitte aufs wesentliche kürzen. Das liest hier sonst keiner!

    Kommentar


    • #3
      Brich den Code um und reduziere ihn auf's wesentliche !
      Du erstellst die Textdatei ja selbst mit PHP und willst deren Inhalt dann in HTML Ausgeben. Schau dir mal htmlentities() an, und lass diese Fkt über deinen String bevor du ihn in die Datei schreibst.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

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

      Kommentar


      • #4
        Versuche es mit der Funktion utf8_decode(). Ich hatte neulich einen ähnlichen Fall, es hat funktioniert.

        Mehr dazu sagt kaum jemand... zu viel Code
        www.createpage.net
        www.immobilien-ohne-makler.de

        Kommentar


        • #5
          Sorry Leute,
          ich dachte immer man müsste das komplette Ding angeben.
          Das letzte mal hat mir jemand auf den Kopf gehaut als es nur ein paar Brocken gab.

          Aber danke erstmal für die Antworten:
          @logiciel ... habe ich ausprobiert.
          Klappt aber nur sobald die Funktion ausgeführt wird (klick auf den "Next" Button).

          Mein Problem ist nach wie vor das uft-8 nicht angesprochen wird,
          wenn das script das erste mal die comments aus der *.txt Datei
          lädt . Ü,Ö,Ä ... ect ... sind ein ???

          Danke für Eure Hilfe


          PHP-Code:
          <?php
           
          // getting present gal from titlebar
          header("Content-type: text/html; charset=utf-8");
          if(
          $_GET) { extract($_GETEXTR_PREFIX_SAME"get_"); }
          if (!isset(
          $gal)) { $gal 1; } 

          // getting the comments from galleryXX.txt
          $n 0;
          $comments = array();
          $cmt $dir.".txt";
          if (
          file_exists($cmt)) {  
              
          $fp fopen($cmt"r");
              while (!
          feof($fp)) {
                  
          $text fgets($fp5000);
                  if (
          $text) {
                      
          $comments[$n] = rtrim($text);
                      
          $n++; 
                  }
              }
              
          fclose($fp); 
          } else {
              for(
          $i=0$i<sizeof($pics); $i++) {
                  
          $comments[$i] = "";
              }
          }


          //-----------------------------------------------------------------------------------------
          // HTML PAGE
          //-----------------------------------------------------------------------------------------
          ?>

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
          <head>
          <script type="text/javascript">

          var curr = <? if($pic) { echo $pic; } else { echo "0"; } ?>;    

          var pics = new Array(<?
          // php loop for printing all the pics into javascript
          for ($i=0; $i<sizeof($pics); $i++) {
              echo "\"$pics[$i]\"";
              if ($i != sizeof($pics)-1) { echo ","; }
          }  ?>)

          var comments = new Array(<?
          // function to slash strange characters for javascript
          function addjsslashes($str) { return addcslashes($str, "\0..\37!@\@\177..\377\'\""); }
          // php loop for printing all the comments into javascript
          for ($i=0; $i<sizeof($comments); $i++) {
              echo "\"".addjsslashes($comments[$i])."\"";
              if ($i != sizeof($comments)-1) { echo ","; }
          } ?>)

          </script>
          </head>
          <body>

          <!-- layer with the comments -->
          <div id="desc"><?=$comments[0]?></div>


          </body></html>
          Zuletzt geändert von Mr.Mittel; 01.12.2006, 21:36.

          Kommentar


          • #6
            so von nachträglich umbrechen hältst du nichts?

            Kommentar


            • #7
              Hallo,

              du schreibtst richtig umbrechen?
              Also ich hab mal das Forum durchsucht, aber was meinst du denn damit?
              Du schreibst immer den Leuten "Bitte richtig umbrechen" ...

              Dankö
              Zuletzt geändert von Mr.Mittel; 01.12.2006, 21:35.

              Kommentar


              • #8
                Was tobiaz meint steht schon in seiner sig
                Postings, die sogar auf meinen Displays eine Überbreite erzeugen, werden ab jetzt ignoriert!
                Und soweit wie ich bei dir nach rechts scrollen muss, würde ich das als Überbreite bezeichnen.

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

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

                Kommentar


                • #9
                  Ähh ja ... sorry.
                  Also ich hab jetzt mal versucht meinen string "$comments"
                  mit dieser funktion zu bearbeiten:

                  PHP-Code:
                  htmlentities('$comments'ENT_QUOTES'utf-8'); 
                  funktioniert aber leider nicht

                  Kommentar


                  • #10
                    mal eine ganz dumme frage. wie wird denn die txt-datei erstellt?

                    gruß
                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      die wird per Hand angelegt und heisst genau so wie der zuständige Ordnername.

                      gallery1 - ORDNERNAME
                      gallery1.txt - TEXTDATEI

                      Jede Zeile in der Datei entspricht dann einem Bild:

                      1. Zeile = 1. Bild im Ordner
                      2. Zeile = 2. Bild ...

                      Kommentar


                      • #12
                        womit wird die datei erstellt? welche zeichenkodierung hat sie?

                        gruß
                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          Mit einem normalem Texteditor. Zeichenkodierung ist wie man es schreibt: ä ö ü ect. ...
                          Muss dann vielleicht ein Utf-8 HTML Befehl an den Anfang? Und ich sollte das Script so einrichten das es nach diesem erst die Comments liest?

                          Kommentar


                          • #14
                            Mit einem normalem Texteditor. Zeichenkodierung ist wie man es schreibt: ä ö ü ect. ...
                            welcher editor? entscheidend ist die art und weise, wie man es abspeichert. also iso-latin, utf-8, etc. wenn du z.b. eine txt-datei als iso-latin abspeicherst, bekommts du bei utf-8 codierungen solche probleme.

                            gruß
                            peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #15
                              Dann würde der Fehler beim notepad liegen?
                              Man du hast vollkommen recht. Ich speichere das als ANSI ... und nicht UTF8 ... verdammt. Auf so etwas muss man erstmal kommen.

                              Leider zeiht mein Server in diesem Moment um. Ich werd´s wohl erst morgen testen können.

                              Noch eine Frage. Kann man nicht mehre Codierungen im PHP auf einmal angeben?


                              DANKE DANKE DANKE DANKE DANKE DANKE ... Ich mach dir ein Bier auf.
                              Zuletzt geändert von Mr.Mittel; 01.12.2006, 22:15.

                              Kommentar

                              Lädt...
                              X