datein einlesen, problem mit "-"

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

  • datein einlesen, problem mit "-"

    Hi,
    also ich will eine Datei einlesen, welche in etwa so aussieht:

    PHP-Code:
    1171714782,Kaiser Chiefs – Born to Be a Dancer
    1171714566
    ,Kaiser Chiefs – Oh My God
    1171714321
    ,Kaiser Chiefs – You Can Have It All
    ... 
    Wenn ich jetzt aber die Datei Zeile für Zeile einlese und dann ausgebe, erhalte ich leider folgendes:

    PHP-Code:
    1171714987,Kaiser Chiefs â€“ Saturday Night
    ... 
    also werden die - in – umgewandelt. Kann ich das irgendwie verhindern? Weil ich gern via explode den String in Timestamp, Interpret und Titel aufteilen würde, allerdings funktioniert
    PHP-Code:
    $line[1] = explode('–'$line[1]); 
    nicht wirklich.
    Könnt ihr mir helfen?
    1123581321

  • #2
    Das Zeichen ist kein "-" sondern ein "—", ein Gedankenstrich.

    Die Datei ist offensichtlich in einem anderen Zeichensatz kodiert als dein PHP per default.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      und was genau kann ich da jetzt dagegen tun?
      1123581321

      Kommentar


      • #4
        bei der ausgabe die kodierung angeben, in der die datei erstellt worden ist, vermutlich utf8.

        Kommentar


        • #5
          und wie mache ich das? mit der doctype angabe oder wie?
          1123581321

          Kommentar


          • #6
            doctype? weißt du, was das ist?

            nein, das könnte mittels eines meta-tags geschehen.

            Kommentar


            • #7
              naja, aber ich will ja die zeile noch aufteilen anhand des "-", aber wenn nichtmal explode erkennt dass da ein - ist, was hilft mir dann ein meta tag in der ausgabe?
              1123581321

              Kommentar


              • #8
                das erkennt den code der jetzt erscheint (–) und wandelt den zurück in deinen - um.

                <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">

                probier das mal
                Webdesign und Webentwicklung - Plunix.de

                Kommentar


                • #9
                  und wo soll ich das einfügen?
                  in der php datei macht das ja keinen sinn?
                  1123581321

                  Kommentar


                  • #10
                    ich denke mal irgendwo hast du sicher einen header.
                    bevor du mit php programmierst, solltest du html können.

                    sowas gehört in den <head> tag.

                    PHP-Code:
                    <?php
                        error_reporting
                    (E_ALL);

                        echo 
                    "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n";
                        echo 
                    "         \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
                        echo 
                    "<html>\n";
                        echo 
                    "    <head>\n";
                        echo 
                    "        <title>Meine Seite</title>\n";
                        echo 
                    "        <link rel=\"stylesheet\" type=\"text/css\" href=\"page.css\" />\n";
                        echo 
                    "        <meta http-equiv=\"Content-Type\"
                                            content=\"text/html; charset=UTF-8\" />\n"
                    ;
                        echo 
                    "    </head>\n";
                        echo 
                    "    <body>\n";

                        echo 
                    "        <div id=\"root\">\n"// ganz oberer Div-Holder
                        
                    echo "            <div id=\"banner\">\n"// banner
                        
                    echo "                Der Banner";
                        echo 
                    "            </div>\n";
                        echo 
                    "            <div id=\"links\">\n"// linkes Menu
                        
                    echo "                Hier kommt ein Menu hin\n";
                        echo 
                    "            </div>\n";
                        echo 
                    "            <div id=\"mitte\">\n"// In der Mitte der Inhalt
                        
                    echo "                Hier werden dann die Daten geladen, wie News\n";
                        echo 
                    "                oder Memberliste.\n";
                        echo 
                    "            </div>\n";
                        echo 
                    "            <br style=\"clear:both;\" />\n"// css-float beenden
                        
                    echo "       </div>\n";

                        echo 
                    "    </body>\n";
                        echo 
                    "</html>\n";
                    ?>
                    Webdesign und Webentwicklung - Plunix.de

                    Kommentar


                    • #11
                      ok, jetzt wird es bei der Ausgabe richtig angezeigt, allerdings funktioniert der explode befehl immernoch nicht.
                      Hier mal der Code:

                      PHP-Code:
                      while(!feof($datei)) {
                              
                      $line fgets($datei10 10);
                              echo 
                      $line."<br /><br />";
                              
                      $line explode(","$line2); // string anhand vom , trennen
                              
                      $line[1] = explode('–'$line[1]);  //string anhand vom – trennen, 
                      //was aber nicht funktioniert
                              
                      ar($line); // testausgabe des arrays
                          

                      erhalte dann als Ausgabe folgendes:
                      PHP-Code:
                      Array
                      (
                          [
                      0] => 1171740668
                          
                      [1] => Array
                              (
                                  [
                      0] => The Kinks – Session Man

                              
                      )


                      1123581321

                      Kommentar


                      • #12
                        kopiere das symbol aus irgendeinem editor, in dem es richtig angezeigt wird, in deine php-datei.

                        Kommentar


                        • #13
                          Wärs nicht besser wenn er einen header senden würde
                          der das encoding angibt? Afair ist die meta-methode nicht
                          sicher.

                          greets
                          (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                          Kommentar


                          • #14
                            sorry beitrag kann gelöscht werden...

                            Kommentar


                            • #15
                              Original geschrieben von penizillin
                              kopiere das symbol aus irgendeinem editor, in dem es richtig angezeigt wird, in deine php-datei.
                              also ich hab es aus der Testausgabe kopiert und im Editor eingefügt, was aber das Problem irgendwie nicht löst.
                              1123581321

                              Kommentar

                              Lädt...
                              X