Konvertieren eines Word-Dokument in brauchbares HTML in PHP
Habe ich eine Reihe von Word-Dokumenten, die ich veröffentlichen möchte mittels eines PHP-tool, das ich geschrieben habe. Ich kopieren und einfügen der Word-Dokumente in ein Textfeld und speichern Sie dann in MySQL mit der PHP-Programm. Ich Habe das problem ergibt sich aus den nicht-standard-Zeichen, die Word-Dokumente haben, wie typografische Anführungszeichen und Auslassungspunkte ("..."). Was ich im moment tun ist, manuell zu suchen und ersetzen Sie diese Art von Dingen (und auch fremde Symbole wie e-akut) mit entweder einfacher text oder HTML-entities (é ; etc) gibt es eine Funktion in PHP, die ich anrufen kann, die die Ausgabe eines Word-Dokument, und konvertieren Sie alles, was das sollte Entitäten in Entitäten und andere Symbole, die nicht richtig angezeigt im Firefox in Symbole, die anzeigen.
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine bessere Lösung wäre es, sicherzustellen, dass Ihre Datenbank set-up zur Unterstützung der UTF-8-Zeichen. Die zusätzlichen Zeichen in der erweiterten Satz sollten Sie für alle "nicht-standard-Zeichen, die Sie sprechen.
Ansonsten, wenn du wirklich konvertieren müssen diese Zeichen in HTML-entities verwenden htmlentities().
Dieser hat mir gut gedient in der Vergangenheit:
Ich denke, dass alle diese Antworten vermisse einen wichtigen Punkt. Windows selbst verwendet einen windows Geschmack von latin1, also, wenn Sie fügen Sie einige spezielle Zeichen (wie asymmetrisch Anführungszeichen) in ein Formular auf einer windows-Maschine, und, die gesendet wird, auf einem unix (oder auch etwas nicht-muckrosoft) box (z.B. in einer Datenbank oder was auch immer) einige der Zeichen nicht bekommen, abgestimmt auf alles, was der unix-system erfasst, damit die verwirrten und unlesbare Zeichen. Was dies bedeutet ist, dass, auch wenn Sie eine UTF-8 Datenbank, und verwenden htmlentities, einige Gemeinheiten sind immer noch durch zu kommen, denn Sie sind Zeichen das OS nicht erkennen - Sie sind auch nicht Teil von UTF-8 - das sind nur-microsoft-Erfindungen. Ich würde gerne wissen, von einer cleveren Lösung, was ich tun müssen, ist manuell die blacklist-Charakter-codes der microsoft-nur chars die mir begegnet mit ein (auch manuell) Liste der UTF-8-Zeichen, ein str_replace für alle diese, und DANN können Sie tun, was Sie wollen mit Ihnen - "iconv", htmlentities, speichern Sie direkt in einer utf8-Datenbank, es spielt keine Rolle mehr.
Mein Verständnis für das alles ist ein wenig wackelig - check-out http://www.cs.tut.fi/~jkorpela/www/windows-chars.html für eine hervorragende Erklärung, die ich verstümmelt in kurzer form vor. - Wenn jemand eine bessere Lösung (ja es ist einer da!) wie PHPify, was in diesem Artikel erläutert... ich würde es gerne hören!
htmlspecialchars() erhalten Sie einen langen Weg, aber Vorsicht, denn Word-Dokumente sind chaotisch.
Hier ist eine Lösung, die ich gekocht für das problem mit der nicht-portablen windows-Zeichensatz. Dies ersetzt die problematische fast-Latin-1-Zeichen mit den entsprechenden HTML-Entitäten.
Funktioniert es auch Bei MirTM