Text import mit š

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

  • Text import mit š

    Hallo zusammen
    Ich importiere Daten aus einem csv dort werden verschiedene Texte mit folgenden Zeichen (š oder Ž) geschrieben, diese Zeichen werden bei der php echo ausgabe gänzlich ausgelassen nach dem Eintrag in die MYSQL DB wird es als ? dargestellt.

    Ich wandle alle Zeichen mit
    PHP-Code:
     utf8_encode($data[$c]) 
    um.

    Ich habe es auch schon erfolglos mit
    PHP-Code:
     htmlspecialchars($data[$c], ENT_COMPAT,'ISO-8859-1'true); 
    versucht.

    Und wenn ich es versuche mit
    PHP-Code:
    str_replace("\v s","š",$data[$c]) 
    zu ersetzten findet es den Buchstaben nicht auch wenn ich direkt mit š danach suche, aber wenn ich ein x- beliebigen Buchstaben damit ersetze zeigt es mit das š an!?!

    Kann mir hier jemand einen Tipp geben wie ich vorgehe soll.

  • #2
    Welche Kodierung hat denn die csv-Datei?

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

    Kommentar


    • #3
      Da ich nicht weiss wo ich das sehe aber schon wie ich es einstelle habe ich nun eine csv mit utf8 codiert, funzt leider auch nicht. Ich nehme an wenn ich nicht extra codiere ist es Mitteleuropäisch Windows

      Kommentar


      • #4
        Schau dir mal das Tutorial von mir an, vielleicht hilft es dir weiter.

        Gruß
        Peter

        PS: das hat schon ein paare Jahre auf dem Buckel und arbeitet noch mit der alten mysql-Erweiterung.
        Zuletzt geändert von Kropff; 25.08.2022, 13:34.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Zitat von sepp Beitrag anzeigen
          Da ich nicht weiss wo ich das sehe aber schon wie ich es einstelle habe ich nun eine csv mit utf8 codiert, funzt leider auch nicht. Ich nehme an wenn ich nicht extra codiere ist es Mitteleuropäisch Windows
          Das musst du denjenigen fragen, der die CSV-Datei erstellt hat.

          Kommentar


          • #6
            @h3ll
            Ich selber mache aus dem Excel eine csv, die kann ich auch utf8 formatieren wie bereits geschrieben, leider ohne Erfolg.

            @Kropff
            Nein, ich glaube das hilft nicht weiter, da habe ich schon einiges getestet.

            @all
            leider habe ich keinen Ansatz mehr, habe nun behelfsmäßig alle betreffenden Zeichen im csv als Zeichen wie & oder % gesetzt und diese dann mit replace zum korrekten Buchstaben umgeschrieben....ist aber für die Zukunft nicht die richtige Lösung

            Kommentar


            • #7
              Zitat von sepp Beitrag anzeigen
              @h3ll
              Ich selber mache aus dem Excel eine csv, die kann ich auch utf8 formatieren wie bereits geschrieben, leider ohne Erfolg.
              Wozu dann der grässliche Umweg über CSV? Warum nicht einfach eine Excel-Datei einlesen?

              Kommentar


              • #8
                Und wo ist da der Vorteil!
                Zudem kenne ich
                PHP-Code:
                fgetcsv 
                mit Excel habe ich noch nie einen Import gemacht.

                Kommentar


                • #9
                  Zitat von sepp Beitrag anzeigen
                  Und wo ist da der Vorteil!
                  Dass man sich mit dem Kodierungsmüll nicht herumschlagen muss?

                  Zitat von sepp Beitrag anzeigen
                  mit Excel habe ich noch nie einen Import gemacht.
                  Es gibt für alles ein erstes mal.

                  Kommentar


                  • #10
                    Gibt es dafür eine bevorzugte library?

                    Kommentar


                    • #11
                      https://github.com/PHPOffice/PhpSpreadsheet

                      Kommentar


                      • #12
                        Ist allerdings nur für php 7.3 ich versuche es dennoch mit php 8.1.

                        Also ich komme da überhaupt nicht zum Ziel, habe das Teil via composer heruntergeladen und eingebunden...weiter komme ich nicht auch nicht mit php7.4
                        Sobald ich nach dem autoload dies
                        PHP-Code:
                        use PhpOffice\PhpSpreadsheet\Spreadsheet;
                            use 
                        PhpOffice\PhpSpreadsheet\ReaderCsv;
                            use 
                        PhpOffice\PhpSpreadsheet\ReaderXlsx
                        einbinden will geht nichts mehr....kein wunder da diese Files gar nicht im Unterordner sind!

                        Schade dass ich mich nun wieder mit solchen Sachen herumschlagen muss; da stellt sich mir die Frage ob der Aufwand sich lohnt oder ob ich besser weiter mich mit den Formatierungen in csv herumschlagen soll?
                        Zuletzt geändert von sepp; 01.09.2022, 01:22.

                        Kommentar


                        • #13
                          Der Fehler muss bei dir liegen, das hat nichts mit PHP 8.1 oder PhpSpreadsheet zu tun, siehe https://github.com/PHPOffice/PhpSpreadsheet/issues/2660


                          Hast du dir mal die Beispiele angesehen?

                          Kommentar


                          • #14
                            Also wenn ich bei mir ein "composer require phpoffice/phpspreadsheet" ausführe, sind die genannten Dateien sehr wohl im vendor-Ordner drin. Erhältst du eine Fehlermeldung, wenn du das machst?

                            Dann brauch ich nur eine index.php mit folgendem Code erstellen:

                            PHP-Code:
                            require_once __DIR__ '/vendor/autoload.php';

                            use 
                            PhpOffice\PhpSpreadsheet\IOFactory// <- use PhpOffice\PhpSpreadsheet\IOFactory;

                            $spreadsheet IOFactory::load(__DIR__ '/test.xlsx');
                            $sheetData $spreadsheet->getActiveSheet()->toArray(nulltruetruetrue);
                            print_r($sheetData); 
                            Und bekomme den Inhalt der Excel-Datei ausgegeben:

                            Code:
                            Array
                            (
                                [1] => Array
                                    (
                                        [A] => Foo
                                        [B] => Bar
                                    )
                            
                                [2] => Array
                                    (
                                        [A] => 1
                                        [B] => 2
                                    )
                            
                            )
                            Zuletzt geändert von h3ll; 01.09.2022, 08:23.

                            Kommentar


                            • #15
                              Ja, das installieren mit composer ist kein Thema, im Vendor ist auch PHPOFFICE enthalten, nur wenn ich - nun auch bei Deinem Beispiel - dann den Code eingebe bekomme ich folgende Fehlermeldung.

                              PHP Warning: The use statement with non-compound name 'PhpOfficePhpSpreadsheetIOFactory' has no effect

                              oder

                              message: PHP Fatal error: Uncaught Error: Class "IOFactory" not found in$

                              Fazit: Es ist absolut nicht nachvollziehbar warum das Teil nicht läuft! Schade dass, ich nun soo viel unnütze Zeit damit verschwenden musste! Ich komme nicht weiter und finde auch keine Lösung im Netz, für mich so nicht zu gebrauchen! Was eigentliche einfach begann und mit dem letzten Post von h3ll den einfachen und zielgerichteten Abschluss hätte sein sollen, endet mit 1000 Fragezeichen und Zweifel am Produkt.

                              Schade, vielleicht kann mir trotzdem jemand einen Tipp geben.
                              Zuletzt geändert von sepp; 02.09.2022, 00:19.

                              Kommentar

                              Lädt...
                              X