op welk punt exception afhandelen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3

Ozzie PHP

Ozzie PHP

20/11/2013 21:00:58
Quote Anchor link
Ward, dat voorbeeldje heb ik deels van jouw code en van een link die Dos mij gegeven had.
Nogmaals, ik weet dus niet hoe ik moet bepalen of er nog genoeg schijfruimte is. En dat is dus wat ik graag zou willen weten. Ik werk met UTF-8. Wellicht is dat van belang. Stel ik wil dus data opslaan, die data serialize ik zodat er een string overblijft. Wat ik dan wil weten is hoeveel schijfruimte die string in beslag zou nemen als ik 'm zou opslaan. En dat wil ik dan vergelijken met de aanwezige schijfruimte. Maar hoe doe je dat? Kun je me misschien een voorbeeldje geven?
 
PHP hulp

PHP hulp

28/03/2024 21:30:48
 
Ward van der Put
Moderator

Ward van der Put

20/11/2013 22:07:23
Quote Anchor link
Gebruik bij strings inderdaad die combinatie. Met dit voorbeeld kun je reproduceren dat strlen() ernaast zit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$str
= 'Cién cañones por banda';

echo '<p>Met 8 bits per karakter: ',
    '<br>strlen(): ', 8 * strlen($str), ' bits',
    '<br>mb_strlen(): ', 8 * mb_strlen($str, 'UTF-8'), ' bits';
?>

Met de wijsvinger erbij zien we dat $str 22 karakters telt. Bij 8 bits per karakter is dat 22 · 8 = 176 bits. Alleen mb_strlen() komt daarop uit.

strlen() komt uit op 192 bits voor 24 in plaats van 22 karakters. En dat klopt: dat zijn de twee accentletters é van Cién en ñ van cañones. Daarvoor heb je zonder multibyte-karakterset twee karakters per speciaal karakter nodig.
Gewijzigd op 20/11/2013 22:09:01 door Ward van der Put
 
Ozzie PHP

Ozzie PHP

20/11/2013 22:16:36
Quote Anchor link
Pfff... ik word gek. Ik probeer jouw voorbeeld te testen, krijg ik melding dat ie de functie mb_strlen niet kent :-s

PHP Fatal error: Call to undefined function mb_strlen() in...

Wat is dit nu weer :-(((
 
Dos Moonen

Dos Moonen

20/11/2013 22:22:39
Quote Anchor link
Je php moet gecompiled zijn met de multibyte extensie.
 
Ozzie PHP

Ozzie PHP

20/11/2013 22:24:26
Quote Anchor link
>> Je php moet gecompiled zijn met de multibyte extensie.

Geweldig, dat is dan bij mij blijkbaar niet het geval. Pfff... ik laat dat verhaal van het meten van schijfruimte dan maar zitten. Ik word er gek van...
 
Ward van der Put
Moderator

Ward van der Put

20/11/2013 22:35:09
Quote Anchor link
Ozzie PHP op 20/11/2013 22:24:26:
>> Je php moet gecompiled zijn met de multibyte extensie.

Geweldig, dat is dan bij mij blijkbaar niet het geval. Pfff... ik laat dat verhaal van het meten van schijfruimte dan maar zitten. Ik word er gek van...

ROFLMAO, ach die paar bytes... oh nee, ik moet bits zeggen :)
 
Ozzie PHP

Ozzie PHP

20/11/2013 22:38:51
Quote Anchor link
ja lach maar...grrrr

Afbeelding
 
Ward van der Put
Moderator

Ward van der Put

20/11/2013 22:43:43
Quote Anchor link
Je hebt toch 2 × 100 cañones aan weerszijde. Of dat nou exact 200 of maar 24 keer 8-bits bytes = 192 is, maakt niet zoveel uit... Knallen! Vuurwerk!
Gewijzigd op 20/11/2013 22:44:09 door Ward van der Put
 
Ozzie PHP

Ozzie PHP

20/11/2013 23:12:36
Quote Anchor link
Jaja... geen kanonnen voor mij. Ben er klaar mee. Ik laat PHP zelf wel roepen wat er fout is en ik ga niks meer meten.
 

Pagina: « vorige 1 2 3



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.