12 Stimmen

filesize aus einer Zeichenkette

Wie kann ich die "Dateigröße" aus einem String in php ermitteln?

Ich habe die Zeichenfolge in einer Mysql-Datenbank als Blob und ich brauche, um die Größe des Blob zu speichern. Meine Lösung war es, eine temporäre Datei zu erstellen und die Zeichenfolge in die temporäre Datei. jetzt kann ich die Dateigröße von der "Zeichenfolge" erhalten. aber diese Lösung ist nicht gut...

Grüße

48voto

ircmaxell Punkte 159431

Das kommt darauf an. Wenn Sie mbstring Funktionsüberladung aktiviert ist, wird der einzige Aufruf, der funktionieren wird, sein mb_strlen($string, '8bit'); . Wenn sie nicht aktiviert ist, strlen($string) wird ebenfalls gut funktionieren.

Sie können also beide Fälle so behandeln:

if (function_exists('mb_strlen')) {
    $size = mb_strlen($string, '8bit');
} else {
    $size = strlen($string);
}

7voto

Kwebble Punkte 2090

SELECT length(feld) FROM tabelle

Von der MySQL-Dokumente :

LENGTH(str)

Gibt die Länge der Zeichenkette str, gemessen in Bytes. Ein Multi-Byte Zeichen zählt als mehrere Bytes. Das bedeutet, dass bei einer Zeichenkette die fünf Zwei-Byte-Zeichen enthält, LENGTH() 10 zurückgibt, während CHAR_LENGTH() 5 zurückgibt.

1voto

Piotr Müller Punkte 5093
strlen()

bevor Sie sie in mysql oder in SQL eingeben:

LENGTH()

Beachten Sie, dass die Länge je nach Zeichensatz unterschiedlich sein kann. Wenn Sie die tatsächliche Länge in Bytes haben wollen, verwenden Sie strlen(), wenn Sie die Anzahl der Zeichen haben wollen, verwenden Sie mb_strlen() (wenn Sie z.B. utf-8 kodiert haben)

0voto

Wenn Sie nur die Zeichenfolge speichern, sollte die Größe der Länge der Zeichenfolge mal der Anzahl der Bytes im Zeichensatz entsprechen. Für Unicode wäre das also 2*strlen($string).

0voto

strlen($string) ist das beste Beispiel für die Anzeige der Größe (MB) einer Zeichenkette

strlen() gibt nicht die Anzahl der Elemente in einer Zeichenkette zurück, sondern die Anzahl der Bytes in der Zeichenkette

Beispiel: echo(strlen('a')); gibt 4 zurück, da das schwarze Quadrat aus 3 Bytes und das 'a' aus einem Byte besteht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X