
Stoikidis
Wenn ich benutze substr()
Ich bekomme am Ende einen seltsamen Charakter
$articleText = substr($articleText,0,500);
Ich habe eine Ausgabe von 500 Zeichen und � <--
Wie kann ich das beheben? Ist es ein Codierungsproblem? Meine Sprache ist Griechisch.
substr
zählt mit Bytes und nicht mit Zeichen.
Griechisch bedeutet wahrscheinlich, dass Sie eine Multibyte-Codierung wie UTF-8 verwenden – und das Zählen pro Byte ist für diese nicht ganz gut.
Vielleicht mit mb_substr
könnte helfen, hier : die mb_*
Funktionen wurden speziell für Multi-Byte-Kodierungen erstellt.

Uğur Özpinar
Verwenden mb_substr
Stattdessen ist es in der Lage, mit mehreren Codierungen umzugehen, nicht nur mit Einzelbyte-Zeichenfolgen substr
:
$articleText = mb_substr($articleText,0,500,'UTF-8');
Sieht aus, als würden Sie dort ein Unicode-Zeichen in zwei Hälften schneiden. Verwenden mb_substr
stattdessen für Unicode-sicheres String-Slicing.

Mussawi7
Verwenden Sie diese Funktion, es hat für mich funktioniert
function substr_unicode($str, $s, $l = null) {
return join("", array_slice(
preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY), $s, $l));
}
Kredite: http://php.net/manual/en/function.mb-substr.php#107698
ms_substr() funktioniert auch hervorragend, um seltsame Zeilenumbrüche zu entfernen, mit denen ich nach dem Parsen von HTML-Code Probleme hatte. Das Problem wurde NICHT gelöst von:
trim()
oder:
var_dump(preg_match('/^\n|\n$/', $variable));
oder:
str_replace (array('\r\n', '\n', '\r'), ' ', $text)
Nicht fangen.

Kristoffer Böhmen
Alternative Lösung für UTF-8-codierte Zeichenfolgen – diese konvertiert UTF-8 in Zeichen, bevor die Teilzeichenfolge abgeschnitten wird.
$articleText = substr(utf8_decode($articleText),0,500);
Um den Artikeltext-String wieder in UTF-8 zu bringen, ist eine zusätzliche Operation erforderlich:
$articleText = utf8_encode( substr(utf8_decode($articleText),0,500) );

GowriShankar
Sie versuchen, Unicode-Zeichen zu schneiden. Also habe ich es vorgezogen substr()
Versuchen mb_substr()
in php.
substr()
substr ( string $string , int $start [, int $length ] )
mb_substr()
mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )
Weitere Informationen zu substr() – Credits => Hier prüfen
10185100cookie-checkPHP-Funktion substr() Fehleryes
Habe dasselbe in (britischem) Englisch gesehen.
– Alimack
25. August 2014 um 11:03 Uhr