Größe in KB des Inhalts einer Variable feststellen

  • Themenstarter Themenstarter ba2
  • Beginndatum Beginndatum
B

ba2

Guest
Hi

ist es möglich die Größe des Inhaltes einer Variable zu bestimmen?

Ich habe leider nix passendes gefunden.

Ich stelle mir das so vor:

PHP:
<?php
$variable = "12345";
$groesse = irgendeinefunktion($variable);
echo $groesse;
echo " KB";
?>

ich hoffe ihr wisst was ich meine.

mfg ba2
 
Hi,

mit nur sizeof();

klappt es prima.

Deine anderen Varianten nicht so wirklich.


THX

mfg ba2
 
sizeof() liefert nur die anzahl der elemente eines arrays zurück und stimmt daher nicht ich hatte mich am anfang verschrieben und sizeof() statt strlen() geschrieben habs aber nun korrigiert
 
HM, die Ausgabe scheint trotzdem richtig zu sein

http://ba2.abba-skript.de/files/test.php

CODE:
PHP:
<?php
$string = "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh";
echo $groesse = sizeof($string)  / 1024;

echo " KB";

echo "<br><br>";

echo floor(strlen(var_dump($string))  / 1024);
?>

EDIT: Wobei ich noch nicht getestet habe ob der Wert Plausibel ist
 
Ein Zeichen hat ein Byte. Soweit ich weiss ist das auch bei PHP so. Es reicht also die Zeichen im String zu zählen.
 
naja strings werden in php ja auch als arrays gehandhabt, also wenn du nur vorhast damit die größe von strings zu berechnen kannste sizeof() nehmen oder direkt strlen(). ansonsten nimm meine funktion und lass das floor() weg, was ja nur dazu da ist es auf einen festen kb betrag abzurunden, dann funktionierts genauso
 
Danke,

ich habe es jetzt mit strlen() realisiert und Zähle die Zeichen.
 
Es ist in PHP sogar so, dass bei Multibyte-Zeichen (Unicode) in Strings mit strlen() diese auch als mehrere Zeichen gezählt werden, also:
strlen("ä") = 2
Du kriegst also tatsächlich die Anzahl der verwendeten Bytes mit strlen().
 
Original von bitmuncher
Ein Zeichen hat ein Byte. Soweit ich weiss ist das auch bei PHP so. Es reicht also die Zeichen im String zu zählen.

Kommt das nicht auch auf die eingestellte Zeichenkodierung an? Zum Beispiel UTF-16 braucht ja 2 Byte pro Zeichen, oder?
 
Original von ba2
HM, die Ausgabe scheint trotzdem richtig zu sein

http://ba2.abba-skript.de/files/test.php

CODE:
PHP:
<?php
$string = "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh";
echo $groesse = sizeof($string)  / 1024;

echo " KB";

echo "<br><br>";

echo floor(strlen(var_dump($string))  / 1024);
?>

EDIT: Wobei ich noch nicht getestet habe ob der Wert Plausibel ist

das mit dem strlen vardump dürfte doch aber nich funktionieren, da var_dump nix zurück gibt, sondern nur die werte ausspuckt.

Code:
C:\Users\easteregg>php -r "$a = 'asldkjas'; echo strlen(var_dump($a));"
string(8) "asldkjas"
0
 
Zurück
Oben