1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | $MySQL_Download_Assoc['Filesize'] = "3634512123"; // 3,384903187863528728485107421875 GB if($MySQL_Download_Assoc['Filesize'] <= 1024) { $Filesize = number_format($MySQL_Download_Assoc['Filesize'] / 1024, 1, ",", ".") . " KB"; } elseif($MySQL_Download_Assoc['Filesize'] >= 1025 OR $MySQL_Download_Assoc['Filesize'] <= 1048576) { $Filesize = number_format($MySQL_Download_Assoc['Filesize'] / (1024 * 1024), 1, ",", ".") . " MB"; } elseif($MySQL_Download_Assoc['Filesize'] >= 1048577 OR $MySQL_Download_Assoc['Filesize'] <= 1073741824) { $Filesize = number_format($MySQL_Download_Assoc['Filesize'] / (1024 * 1024 * 1024), 1, ",", ".") . " GB"; } else { $Filesize = number_format($MySQL_Download_Assoc['Filesize'] / (1024 * 1024), 1, ",", ".") . " MB"; } echo $Filesize; ?> |
Dit werkt (in mijn geval) nog beter.quote:Op donderdag 24 november 2005 19:03 schreef JeRa het volgende:
@the_disheaver
Je kunt voor jouw toepassingen veel beter alsnog gebruik maken van preg_replace, en kijken naar hoe (simpele) template parsers dit doen. Een standaard vervanging van een enkele variabele met preg_replace is vrij simpel, met arrays wordt het ietsjes complexer maar dat valt ook op dezelfde manier op te vangen
1 2 3 4 5 6 7 8 9 10 11 | $vars = array (); $vars [ "title" ] = "Titeltje"; $vars [ "content" ] = "Inhoud"; foreach ( $vars as $key => $value ) $template = str_replace ( '{' . $key . '}', $value, $template ) echo $template; |
1 2 3 4 5 6 7 8 | <head> <title>{title}</title> </head> <body> <p>{content}</p> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if ($size <= 1024 ) { $s = number_format($size, 0, ',', '.') . ' bytes'; } else if ($size <= 1024 * 1024) { $s = number_format($size / 1024, 1, ',', '.') . ' kB'; } else if ($size <= 1024 * 1024 * 1024) { $s = number_format($size / (1024 * 1024), 1, ',', '.') . ' MB'; } else if ($size <= 1024 * 1024 * 1024 * 1024) { $s = number_format($size / (1024 * 1024 * 1024), 1, ',', '.') . ' GB'; } else { $s = number_format($size / (1024 * 1024 * 1024 * 1024), 1, ',', '.') . ' TB'; } return $s; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 10 bytes = 10 bytes 100 bytes = 100 bytes 1000 bytes = 1.000 bytes 10000 bytes = 9,8 kB 100000 bytes = 97,7 kB 1000000 bytes = 976,6 kB 10000000 bytes = 9,5 MB 100000000 bytes = 95,4 MB 1000000000 bytes = 953,7 MB 10000000000 bytes = 9,3 GB 100000000000 bytes = 93,1 GB 1000000000000 bytes = 931,3 GB 10000000000000 bytes = 9,1 TB 3634512123 bytes = 3,4 GB |
Thnx, eigenlijk werkt alles in mijn site met functies (1 function library php file met meer dan 2000 regels code)quote:Op donderdag 24 november 2005 21:18 schreef SuperRembo het volgende:
Zoals al gezegd, als je al weet dat een getal niet <= 1024 is, dan hoef je daarna niet te controleren of het >= 1025 is
Wat er nou precies fout gaat zie ik niet zo 1, 2, 3. Je code is niet zo overzichtelijk door die overbodige controle en doordat overal $MySQL_Download_Assoc['Filesize'] staat. Dit is typisch iets wat je makkelijker in een functie zet.
[ code verwijderd ]
Resultaten:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $MySQL_Download_Assoc['Filesize'] = "3634512123"; // 3,384903187863528728485107421875 GB if($MySQL_Download_Assoc['Filesize'] >= 1073741824) $Filesize = number_format($MySQL_Download_Assoc['Filesize'] / (1024 * 1024 * 1024), 1, ",", ".") . " GB"; }elseif($MySQL_Download_Assoc['Filesize'] >= 1025 OR $MySQL_Download_Assoc['Filesize'] >= 1048576){ $Filesize = number_format($MySQL_Download_Assoc['Filesize'] / (1024 * 1024), 1, ",", ".") . " MB"; }elseif($MySQL_Download_Assoc['Filesize'] >= 1048577 OR $MySQL_Download_Assoc['Filesize'] >= 1024){ $Filesize = number_format($MySQL_Download_Assoc['Filesize'] / 1024, 1, ",", ".") . " KB"; }else{ $Filesize = number_format($MySQL_Download_Assoc['Filesize'], 1, ",", ".") . " Bytes"; } echo $Filesize; ?> |
1 |
1 |
Die b moet een hoofdletter B zijn in dat scriptjequote:Op donderdag 24 november 2005 21:18 schreef Chandler het volgende:
http://www.phpfreakz.nl/library.php?sid=17556
het kan nog beter trouwens, zie de comments in dit scriptje
De waarde in de elseif functie was verkeerd ipv de waarde van de variablequote:Op donderdag 24 november 2005 21:26 schreef ikke_ook het volgende:
wat the_disheaver zegt idd, die fout heb ik er in bovenstaand script uitgehaald.
de groter dan functie eruit gehaald, en een '{' toegevoegd.quote:Op donderdag 24 november 2005 21:24 schreef ikke_ook het volgende:
zo dan :
[ code verwijderd ]
-edit-
Ik geloof dat ik een beetje laat ben met mn reactie
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $MySQL_Download_Assoc['Filesize'] = "3634512123"; // 3,384903187863528728485107421875 GB if($MySQL_Download_Assoc['Filesize'] >= 1073741824){ $Filesize = number_format($MySQL_Download_Assoc['Filesize'] / (1024 * 1024 * 1024), 1, ",", ".") . " GB"; }elseif($MySQL_Download_Assoc['Filesize'] >= 1048576) { $Filesize = number_format($MySQL_Download_Assoc['Filesize'] / (1024 * 1024), 1, ",", ".") . " MB"; }elseif($MySQL_Download_Assoc['Filesize'] >= 1024){ $Filesize = number_format($MySQL_Download_Assoc['Filesize'] / 1024, 1, ",", ".") . " KB"; }else{ $Filesize = number_format($MySQL_Download_Assoc['Filesize'], 1, ",", ".") . " Bytes"; } echo $Filesize; ?> |
Nee, ik denk dat je dan met Regular Expressions aan de slag moet.quote:Op donderdag 24 november 2005 18:31 schreef the_disheaver het volgende:
Het is me nu gelukt met de eval() functie. Maar niet optimaal.
(ik wil dat de variable in een variable gewijzigd wordt door de waarde van de variable)
ff ter verduidelijkin:
[ code verwijderd ]
Maar het werkt niet als ik een variable als '$conf['form'] gebruik.
Kan ie ook zo'n soort variable eval'en?
Dat zou moeten kunnen met unset.quote:Op vrijdag 25 november 2005 14:05 schreef Desdinova het volgende:
kan ik mn $_GET data verwijderen? dus dattie halverwege mn PHP file de $_GET['test'] leeg maakt bijvoorbeeld.
1 2 3 4 | $MySQL_Online_Select = "SELECT count(`Datum`) FROM Online WHERE IdUser = '" . addslashes($_SESSION['IdLid']) . "'"; $MySQL_Online_Query = mysql_result($MySQL_Online_Select,0); ?> |
1 |
Gebruik mysql_error() om te zien waar de fout in de query zitquote:Op vrijdag 25 november 2005 17:10 schreef wobbel het volgende:
Krijg stomme fout bij deze code
[ code verwijderd ]
MySQL connectie is gewoon gemaakt. Tabel Online bestaat, IdUser veld bestaat en Datum bestaat ook.
Er zitten trouwens GEEN rijen in de tabel, maar dat hoeft toch niet...ben toch dom aan het tellen
Error:
[ code verwijderd ]
Krijg ik dezelfde errorquote:Op vrijdag 25 november 2005 17:15 schreef JeRa het volgende:
[..]
Gebruik mysql_error() om te zien waar de fout in de query zit
1 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |