Wie man Microsoft-kodierte Anführungszeichen in PHP ersetzt
Muss ich ersetzen Microsoft Word-version des Einzel-und doppelte Anführungszeichen (“ ” ‘ ’
) mit regulären Anführungszeichen (' und ") durch eine Codierung Problem in meiner Anwendung. Ich brauchen Sie nicht, werden HTML-entities und die ich nicht ändern kann meine Datenbank-schema.
Habe ich zwei Möglichkeiten: entweder ein regulärer Ausdruck oder eine zugehörige array.
Gibt es einen besseren Weg, dies zu tun?
InformationsquelleAutor der Frage Misha M | 2009-08-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn man bedenkt Sie nur wollen, zu ersetzen, ein paar gezielte und gut identifiziert Zeichen, ich würde für
str_replace
mit einem array : die Sie offensichtlich nicht brauchen, die schwere Artillerie regex bringen wird 😉Und wenn Sie Begegnung einige andere Sonderzeichen (verfluchtes copy-paste aus word...), können Sie einfach fügen Sie Sie zum array, wenn notwendig ist /wird, wenn man Sie identifiziert.
EDIT : die beste Antwort, die ich geben kann, ist Ihr Kommentar ist wohl dieser link : Konvertieren Smart Quotes mit PHP
Und den zugehörigen code (Zitat, Seite) :
(Ich habe keine MS word auf diesem computer, so kann ich nicht getestet von mir)
Ich erinnere mich nicht genau das, was wir bei der Arbeit verwendet (ich war nicht die, die für den Umgang mit dieser Art der Eingabe)aber es war die gleiche Art von Zeug...
InformationsquelleAutor der Antwort Pascal MARTIN
Habe ich eine Antwort gefunden auf diese Frage. Sie brauchen nur eine Zeile code mit
iconv()
- Funktion in php:InformationsquelleAutor der Antwort Justin Dominic
Ihre Microsoft-kodierte Zitate sind die wohl die typografische Anführungszeichen. Sie können einfach ersetzen Sie Sie mit
str_replace
wenn Sie wissen, der Codierung der Zeichenfolge, die Sie ersetzen möchten.Hier ist ein Beispiel für UTF-8, sondern mit einem einzigen mapping-array mit
strtr
:Wenn Sie brauchen eine andere Codierung, können Sie
mb_convert_encoding
zu konvertieren Schlüssel.InformationsquelleAutor der Antwort Gumbo
wenn, wie mir, Sie kommen hier mit einem enormen Spektrum gebrochen ascii /ms-word-Zeichen, die tun verrückte Dinge, um Ihre CMS-oder RTE und iconv nicht funktioniert, dann diese tolle Funktion kann nur für Sie sein.
Stellen Sie sicher, dass Ihre Codierung ist utf-8 beim speichern mit dieser Funktion in eine Datei.
InformationsquelleAutor der Antwort thelastshadow
Haben wir folgende. Angebote mit ein paar Sonderzeichen.
InformationsquelleAutor der Antwort ceejayoz
Jeder einzelne von den bisherigen Antworten außer für @Gumbo 'wird die Fähigkeit 'zerfleischen' Unicode-strings:
Ergebnisse in:
Die iconv:
Ergebnisse in:
Können Sie es ändern, um
//IGNORE
die Zeichen entfernen, aber nicht übersetzen.Dies ist der beste Weg, um Sie Ersatz für Microsoft-Zitate codiert in CP1252. Wenn Sie in Unicode, und Sie müssen, um Sie zu ersetzen, verwenden Sie Gumbo Antwort:
Entnommen diese Antwortmit einigen änderungen. Wenn Sie wollen, um die Kontrolle über das, was Sie suchen - /ersetzen-verwenden Sie diese Funktion.
InformationsquelleAutor der Antwort NobleUplift