[php] Grootte van string in bytes

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hm, zit nu een tijdje te zoeken en te denken, maar ik kom er nog niet helemaal uit;

Ik moet van een string de grootte in bytes weten. Er is vast een heel simpele manier, maar ik kom er niet helemaal uit. Een hersenkronkel, dat zal het zijn.
Anyhow, ik mag de string niet naar een file schrijven om op die manier de grootte te bepalen.

Voorbeeld: $str = "Dit is een korte string"; (en dit is dan van mijn part 25 bytes)

Weet iemand de oplossing?

Acties:
  • 0 Henk 'm!

  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 16:43

TwoR

Gekleurde stippen

is het niet zo dat elk karakter een byte is?
Dus als je strlen doet over je string zou dat de hoeveelheid bytes zijn.

[ Voor 94% gewijzigd door Creepy op 08-06-2005 11:50 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Logisch nadenken ;) Je kan in PHP vast wel opzoeken hoe een string wordt opgeslagen. Als je dat weet kan je ook prima bepalen hoe groot een bepaalde string in bytes is.

Maaruh, wat heb je nu zelf al gezocht? Waarom kon je niks met die informatie? Zie ook P&W FAQ - De "quickstart" voor hoe we een topicstart wel graag zouden willen zien.
offtopic:
TwoR: ik zat weer eens te slapen en had de edit knop op jouw bericht te pakken....sorry..

[ Voor 51% gewijzigd door Creepy op 08-06-2005 11:52 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 16:43

TwoR

Gekleurde stippen

:? Uhm waarom heb ik een edit in mijn post :?

mmm Creepy is snel met editten

[ Voor 32% gewijzigd door TwoR op 08-06-2005 11:51 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik weet het niet helemaal zeker maar volgensmij is 1 karakter 1 byte dus geeft strlen() wat jij wilt.

moet vaker refreshen :(

[ Voor 13% gewijzigd door Verwijderd op 08-06-2005 11:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Creepy schreef op woensdag 08 juni 2005 @ 11:49:
Maaruh, wat heb je nu zelf al gezocht? Waarom kon je niks met die informatie? Zie ook P&W FAQ - De "quickstart" voor hoe we een topicstart wel graag zouden willen zien.
Oh, dude, vergeten te plaatsen. Gezocht op Google en GoT uiteraard, maar telkens kreeg ik allerlei info over het type 'Byte' en allerlei andere info waar ik op dit moment weinig aan heb.

Hm, als elk karakter inderdaad een byte is, dan ben ik eruit.

Acties:
  • 0 Henk 'm!

  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 16:43

TwoR

Gekleurde stippen

Verwijderd schreef op woensdag 08 juni 2005 @ 11:54:
[...]


Oh, dude, vergeten te plaatsen. Gezocht op Google en GoT uiteraard, maar telkens kreeg ik allerlei info over het type 'Byte' en allerlei andere info waar ik op dit moment weinig aan heb.

Hm, als elk karakter inderdaad een byte is, dan ben ik eruit.
ik zou zeggen probeer het eens. Zet in kladblok 10 tekens en kijk hoe groot de file word. zet er vervolgens 25 in en als de file dan 25 b is dan klopt het.

[.edit]
Ja het klopt ik ben ook gek ook dat ik dit ga zitten testen.....

[ Voor 9% gewijzigd door TwoR op 08-06-2005 11:59 ]


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op woensdag 08 juni 2005 @ 11:54:
[...]


Oh, dude, vergeten te plaatsen. Gezocht op Google en GoT uiteraard, maar telkens kreeg ik allerlei info over het type 'Byte' en allerlei andere info waar ik op dit moment weinig aan heb.

Hm, als elk karakter inderdaad een byte is, dan ben ik eruit.
Tenzij je gebruik maakt van multibyte strings.

dan zou je gebruik kunnen maken van mb_strwidth

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TwoR schreef op woensdag 08 juni 2005 @ 11:57:
[...]

ik zou zeggen probeer het eens. Zet in kladblok 10 tekens en kijk hoe groot de file word. zet er vervolgens 25 in en als de file dan 25 b is dan klopt het
Daar was ik al mee bezig ;). Maar inderdaad, het klopt. Mooi. Kan ik ook weer verder :)

Dank!

@ LuCarD: Voor zover ik weet krijg ik alleen 'normale' strings binnen, dus strlen() zou het moeten doen. Toch handig om te weten, mocht ik het wél nodig hebben...

[ Voor 19% gewijzigd door Verwijderd op 08-06-2005 12:03 ]


Acties:
  • 0 Henk 'm!

Verwijderd

$bytes = strlen($string) +1; (je hebt een \0 char op het eind)

Acties:
  • 0 Henk 'm!

Verwijderd

Dat klopt natuurlijk wel maar die 0 ga je niet opslaan in je file... Zijn er trouwns geen functies in PHP om een string naar file te schrijven. Dat hij dus zelf uitzoekt of het single/muti byte string is ?

Acties:
  • 0 Henk 'm!

Verwijderd

Nee is er niet, de fputs functie wordt niet overloaded door mbstring: http://nl3.php.net/mbstring#AEN80049

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op woensdag 08 juni 2005 @ 12:06:
$bytes = strlen($string) +1; (je hebt een \0 char op het eind)
Waarom, in hemelsnaam? Het is geen C.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 18:14
Ook een beetje rare maat, de grootte gelijkstellen aan de grootte van een bestand waarin je 'm weg zou schrijven. In het geheugen neemt die string namelijk wel meer in beslag dan dat; het is meer een minimum.
Pagina: 1