String-Größe in Bytes in PHP messen
Ich mache eine Immobilien-Futter für ein portal und sagt mir die max Länge einer Zeichenfolge sein sollte, die 20.000 bytes (20 Kb), aber ich habe nie über diese vor.
Wie kann ich Messen byte
Größe eines varchar string
. So kann ich dann die while-Schleife trimmen.
InformationsquelleAutor der Frage Liam Bailey | 2011-09-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie, um herauszufinden, ob eine Zeichenkette in ascii verschlüsselte oder codierte mit einer multi-byte-format.
Im ersten Fall können Sie einfach verwenden
strlen
.Im letzteren Fall müssen Sie die Anzahl der bytes pro Zeichen.
den strlen Dokumentation liefert ein Beispiel, wie es zu tun : http://www.php.net/manual/en/function.strlen.php#72274
InformationsquelleAutor der Antwort Foo Bah
Können Sie mb_strlen (), um die byte Länge mit einer Kodierung, die nur byte-Zeichen, ohne worring über multibyte-oder Single-Byte-Zeichenfolgen.
Zum Beispiel, als drake127 saids in einem Kommentar von mb_strlen, die Sie verwenden können, '8bit' encoding:
Können Sie Probleme mit der strlen-Funktion, da php eine option, um eine überlastung strlen wirklich zu nennen mb_strlen. Sehen mehr info über es in http://php.net/manual/en/mbstring.overload.php
Für trim string byte Länge ohne Spalt in der Mitte einer multibyte-Zeichen können Sie verwenden:
InformationsquelleAutor der Antwort PhoneixS
Meinst du byte oder string-Länge?
Byte-Größe ist gemessen mit
strlen()
in der Erwägung, dass die string-Länge wird abgefragt, mitmb_strlen()
. Sie könnensubstr()
trimmen, um einen string zu X bytes (beachten Sie, dass dieses brechen der Zeichenfolge, wenn es eine multi-byte - Kodierung, wie bereits von Darhazer in den Kommentaren) undmb_substr()
um es zu trimmen, um X-Zeichen in der Codierung der Zeichenfolge.InformationsquelleAutor der Antwort soulmerge
PHP
strlen()
Funktion gibt die Anzahl der ASCII-Zeichen.strlen('borsc')
-> 5 (bytes)strlen('boršč')
-> 7 (bytes).. oder Sie können eine Funktion verwenden, wie diese:
InformationsquelleAutor der Antwort mIFO
Weiter zu PhoneixS Antwort zu bekommen, die richtige Länge der Zeichenfolge in Byte - Seit
mb_strlen()
ist langsamer alsstrlen()
für die beste Leistung überprüfen können "mbstring.func_overload" ini-Einstellung, so dassmb_strlen()
wird nur verwendet, wenn es wirklich erforderlich ist:InformationsquelleAutor der Antwort Ulver