probleme avec une function

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme avec une function

par traker » 17 oct. 2008, 11:13

merci je voit pas trot le pow ??? pourquoi???

voila ma fonction terminé ptit function toute simple de mise en forme de la taille d'un fichier
mais comme vous avez pris le temps de m'aidé c'est normale , ca pourait aidé d'autre

function SIZE ($file){
(filesize($file)>='1000')? $FileZipSize=round(filesize($file)/'1024',2).' Ko' :'' ;
(filesize($file)>='1000000')? $FileZipSize=round((filesize($file)/'1024')/1024,2).' Mo' :'';
(filesize($file)>='1000000000')? $FileZipSize='<span class="txtroug"><b>'.round(((filesize($file)/'1024')/1024)/1024,2).' Go</b></span >' : '';
return $FileZipSize;
}

pour l'appeler
SIZE('nomdufichier');

je pense qu'il y a plus simple mais j'ai pas trouvé

par albat » 16 oct. 2008, 17:10

J'avais suggéré cette manière pour le clin d'œil
mais en y réfléchissant, elle est plus intéressante qu'il n'y paraît :
plus de switch, plus d'opérateur ternaire, plus de tests... une exécution directe !

si un forcené veut s'amuser à faire un benchmark... :lol:

par Cyrano » 16 oct. 2008, 17:05

L'ancien matheux que je suis apprécierait un truc du genre :
$FileZipSize = filesize($file) / pow(1024,$oct);
:langue:
Astucieux :)

par albat » 16 oct. 2008, 17:03

L'ancien matheux que je suis apprécierait un truc du genre :
$FileZipSize = filesize($file) / pow(1024,$oct);
:langue:

par Cyrano » 16 oct. 2008, 16:56

Les parenthèses sont facultatives avec echo, personnellement, je les mets systématiquement.

par traker » 16 oct. 2008, 16:46

merci a toi

on a meme pas le temps de cherché que l'on a deja la reponse d'un membre sur ce forum ca fait deja 2 question aujourd'hui que je poses et que l'on me répond tres rapidement
ca chapeau c'est tres rare de trouvé un forum si réactif vite dans mes favori


je viens de trouvé c'est
return $FileZipSize; au lieux de echo echo $FileZipSize;

et ca marche
function SIZE ($file,$oct){
//$oct=1 => Ko =2 =>Mo =3 =>Go
($oct=='0')? $FileZipSize=(filesize($file)/'1024').'Ko':'';
($oct=='1')? $FileZipSize=((filesize($file)/'1024')/1000).'Mo':'';
($oct=='2')? $FileZipSize=(((filesize($file)/'1024')/1000)/1000).'Go':'';
return $FileZipSize;
}

??? echo() je ne connaisais pas !!

merci encore

par Cyrano » 16 oct. 2008, 16:39

Tu as surtout écrit de façon pour le moins bizarre tes opérateurs ternaires.

Je vais te suggérer une autre méthode utilisant un switch :
<?php
function SIZE($file,$oct)
{
    //$oct=1 => Ko =2 =>Mo =3 =>Go
    switch ($oct)
    {
        case '1':
            $FileZipSize = (filesize($file)/1024) .'Ko';
            break;
        case '2':
            $FileZipSize = ((filesize($file)/1024) / 1024) .'Mo';
            break;
        case '3':
            $FileZipSize = (((filesize($file)/1024) / 1024) / 1024) .'Go';
            break;
        default:
            $FileZipSize = false;
    }
    return $FileZipSize;
}

echo(SIZE($filename_zip, 1));
essaye ça, ça devrait mieux fonctionner :-k

probleme avec une function

par traker » 16 oct. 2008, 16:19

bonjour
voila je comprend pas pourquoi??
2mn pour faire ma ptit function et 15mn pour comprendre mon bug

function SIZE($file,$oct){
//$oct=1 => Ko =2 =>Mo =3 =>Go
($oct=='0')? $FileZipSize=(filesize($file)/'1024').'Ko':'';
($oct=='1')? $FileZipSize=((filesize($file)/'1024')/1000).'Mo':'';
($oct=='2')? $FileZipSize=(((filesize($file)/'1024')/1000)/1000).'Go':'';
echo $FileZipSize;
}

SIZE($filename_zip,1);

il m'affiche
0.0018994140625Mo0.0018994140625Mo
ce qui est bon mais en 2 fois

je me suis dit j'enleve le echo $FileZipSize de la function

la j'ai plus rien dutout

avec
echo SIZE($filename_zip,1); //j'ai rien non plus
et si je met hors function
echo $FileZipSize; //j'ai rien non plus

c'est ou en double ou rien???

merci