abonnement Unibet Coolblue Bitvavo
pi_32544317
@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
pi_32546883
-

[ Bericht 49% gewijzigd door DutchBlood op 24-11-2005 20:48:09 ]
  donderdag 24 november 2005 @ 20:36:09 #253
37634 wobbel
Da WoBBeL King
pi_32546957
Dit zal waarschijnlijk een heel stomme post zijn, excuses voor dat. Ik zit nu hartstikke ziek thuis en ben de hele dag al wazig, maar ik kom er bij onderstaand scriptje niet uit :s

Owjah, omdat de code tag van Fok! niet goed werkt kun je de code hier wel goed bekijken:
http://194.126.173.14/~xostnl/tccl/TEMP.phps
De uitkomst hier:
http://194.126.173.14/~xostnl/tccl/TEMP.php

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
<?php
$MySQL_Download_Assoc
['Filesize'] = "3634512123"; // 3,384903187863528728485107421875 GB

if($MySQL_Download_Assoc['Filesize'] &lt;= 1024)
{

    
$Filesize                    = number_format($MySQL_Download_Assoc['Filesize'] / 1024, 1, ",", ".") . " KB";
    
}
elseif(
$MySQL_Download_Assoc['Filesize'] &gt;= 1025 OR $MySQL_Download_Assoc['Filesize'] &lt;= 1048576)
{

    
$Filesize                    = number_format($MySQL_Download_Assoc['Filesize'] / (1024 * 1024), 1, ",", ".") . " MB";

}
elseif(
$MySQL_Download_Assoc['Filesize'] &gt;= 1048577 OR $MySQL_Download_Assoc['Filesize'] &lt;= 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;

?>


De bovenstaande Filesize is 3.4 GB, maar $Filesize zegt dat het 3.466,1 MB is ipv 3,5 GB.
pi_32547763
die "Or's" moeten "AND's" zijn lijkt me zo

Als je nou de code tag gebruikt, dan werkt t wel goed want die is wel goed.
pi_32547986
Als je van die or's and's maakt werkt het ook.

Maar waarom uberhaupt die groter-dan er in zetten? Lijkt me een beetje dubbelop icm de elseif
pi_32548106
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
Dit werkt (in mijn geval) nog beter.
1
2
3
4
5
6
7
8
9
10
11
$template = implode ( "", file ( "./template.html" ) );

$vars = array ();

$vars [ "title" ] = "Titeltje";
$vars [ "content" ] = "Inhoud";

foreach ( $vars as $key => $value )
   $template = str_replace ( '{' . $key . '}', $value, $template )

echo $template;

templatebestand template.html:
1
2
3
4
5
6
7
8
<html>
<head>
   <title>{title}</title>
</head>
<body>
<p>{content}</p>
</body>
</html>

(met dank aan de search in GoT, en drm)
  donderdag 24 november 2005 @ 21:11:29 #257
37634 wobbel
Da WoBBeL King
pi_32548124
AND of OR, het maakt niks uit ik krijg in beeld krijgen: 3.466,1 MB
pi_32548335
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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function FormatByteSize($size) {
   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;
}


Resultaten:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1 bytes = 1 bytes
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
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_32548353
http://www.phpfreakz.nl/library.php?sid=17556

het kan nog beter trouwens, zie de comments in dit scriptje
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 24 november 2005 @ 21:22:24 #260
37634 wobbel
Da WoBBeL King
pi_32548453
- dank je stom databeest, voor deze dubbelpost -
  donderdag 24 november 2005 @ 21:22:53 #261
37634 wobbel
Da WoBBeL King
pi_32548464
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 ]
Thnx, eigenlijk werkt alles in mijn site met functies (1 function library php file met meer dan 2000 regels code)

Nu heb ik ff deze functie ingebouwd en het werkt goed
pi_32548509
zo dan :
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;
?> 


-edit-
Ik geloof dat ik een beetje laat ben met mn reactie
pi_32548540
1$MySQL_Download_Assoc['Filesize'] = "[b]3634512123[/b]";


is groter dan

1$MySQL_Download_Assoc['Filesize'] <= [B]1073741824[/b])


De variable is blijkbaar niet 3,5 GB. maar 35GB en dus voert hij de else{} uit, waar MB's uitkomen.
  donderdag 24 november 2005 @ 21:26:09 #264
37634 wobbel
Da WoBBeL King
pi_32548546
quote:
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
Die b moet een hoofdletter B zijn in dat scriptje anders is het bits en geen Bytes
pi_32548566
wat the_disheaver zegt idd, die fout heb ik er in bovenstaand script uitgehaald.
  donderdag 24 november 2005 @ 21:29:33 #266
37634 wobbel
Da WoBBeL King
pi_32548659
Dank jullie voor al jullie reacties, maar het werkt ondertussen al


En nu duik ik in bed kut ziek zijn
pi_32548707
quote:
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 waarde in de elseif functie was verkeerd ipv de waarde van de variable
pi_32548811
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
de groter dan functie eruit gehaald, en een '{' toegevoegd.

En zo werkt ie wel:
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;
?>


Beetje overbodig, maar ach
  donderdag 24 november 2005 @ 22:12:40 #269
104583 cyberstalker
Een krachtig neen!
pi_32549992
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?
Nee, ik denk dat je dan met Regular Expressions aan de slag moet.
Hope for the best, prepare for the worst.
pi_32565849
kan ik mn $_GET data verwijderen? dus dattie halverwege mn PHP file de $_GET['test'] leeg maakt bijvoorbeeld.
As a rule, I never touch anything more sophisticated and delicate than myself.
  vrijdag 25 november 2005 @ 14:06:52 #271
104583 cyberstalker
Een krachtig neen!
pi_32565902
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.
Dat zou moeten kunnen met unset.
Hope for the best, prepare for the worst.
pi_32566016
werkt! ty
As a rule, I never touch anything more sophisticated and delicate than myself.
  vrijdag 25 november 2005 @ 17:10:40 #273
37634 wobbel
Da WoBBeL King
pi_32571606
Krijg stomme fout bij deze code

1
2
3
4
<?php
$MySQL_Online_Select            
= "SELECT count(`Datum`) FROM Online WHERE IdUser = '" . addslashes($_SESSION['IdLid']) . "'";
$MySQL_Online_Query                = mysql_result($MySQL_Online_Select,0);
?>


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:
1Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/xostnl/public_html/tccl/lib/main.php on line 1218


Tabel:


[ Bericht 4% gewijzigd door wobbel op 25-11-2005 17:19:58 ]
pi_32571759
quote:
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 ]
Gebruik mysql_error() om te zien waar de fout in de query zit
  vrijdag 25 november 2005 @ 17:17:40 #275
37634 wobbel
Da WoBBeL King
pi_32571826
quote:
Op vrijdag 25 november 2005 17:15 schreef JeRa het volgende:

[..]

Gebruik mysql_error() om te zien waar de fout in de query zit
Krijg ik dezelfde error

1Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/xostnl/public_html/tccl/lib/main.php on line 1218


abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')