Die Verwendung von substr() von PHP mit Sonderzeichen am Ende führt zu Fragezeichen
Lesezeit: 2 Minuten
Bert
Wenn ich die Funktion substr() in PHP verwende, bekomme ich ein Fragezeichen (ein Quadrat mit einem Fragezeichen – je nach Browser) am Ende des Strings, wenn dieses letzte Zeichen ein Sonderzeichen war, wie ë oder ö usw …
keine Joomla-Frage, reines PHP kann dies lösen (Sruit A.Suks Antwort funktioniert am besten)
– Fanky
28. Januar 2019 um 13:57 Uhr
Beantwortet das deine Frage? PHP-Funktion substr() Fehler
– gre_gor
6. April um 11:06 Uhr
Wenn Ihre Zeichenfolge eine Multibyte-Codierung (wie UTF-8) hat, sollten Sie verwenden mb_substr um solche probleme zu vermeiden:
$introtext=mb_substr($introtext,0,200);
Groß! Funktioniert wie erwartet 🙂
– Kann Rau
21. Juli 2015 um 19:16 Uhr
Dies funktioniert nicht mit skandinavischen Buchstaben wie åäö, die benötigt werden, um utf-8 hinzuzufügen, wie es Sruit A.Suk vorgeschlagen hat
– EspeH
20. August 2015 um 18:38 Uhr
Danke, das hat mir den Tag gerettet!
– Michi-2142
2. Dezember 2016 um 6:40 Uhr
Ahh das hat mir sehr geholfen. Sonderzeichen verursachten Probleme, also fand ich nach viel Debugging heraus, dass die Ursache $myString war[$i] was auch mit substr das gleiche ungültige Ergebnis lieferte. Allerdings hat mb_substr das Problem nun vollständig behoben.
Akzeptierte Antwort hat bei mir nicht funktioniert, ich musste es auf Ihre Weise machen, damit es mit skandinavischen Zeichen funktioniert. Vielen Dank
Wie unterscheidet sich das von allen vorherigen Antworten?
– Peter Mortensen
6. Juli 2019 um 20:26 Uhr
Das liegt daran, dass substr nicht mit Multibyte-Zeichen funktioniert. substr wird wahrscheinlich ein Multibyte-Zeichen “halbieren”. Sie sollten stattdessen verwenden mb_substr. Stellen Sie außerdem sicher, dass Ihre Datei in UTF-8 gespeichert ist.
$introtext = mb_substr($introtext, 0, 200);
verwenden mb_substr Anstatt von substr das löst solche Probleme, aber vorher überprüfen mb_string wird in Ihrer PHP-Konfiguration aktiviert durch:
php -i | grep mbstring
Es würde Ihnen zeigen, dass die mb_string aktiviert ist oder nicht. Wenn nicht, können Sie das installieren durch: (für PHP 8.0)
keine Joomla-Frage, reines PHP kann dies lösen (Sruit A.Suks Antwort funktioniert am besten)
– Fanky
28. Januar 2019 um 13:57 Uhr
Beantwortet das deine Frage? PHP-Funktion substr() Fehler
– gre_gor
6. April um 11:06 Uhr