Intttttttttttttteger - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Intttttttttttttteger (/showthread.php?tid=5538) |
Intttttttttttttteger - Wells - 08-07-2011 Bonjour à tous, question simple (et désespéré , si si) La taille max d'un int est de 12363031551 Y a t'il moyen de stocker plus que ça dans une variable. Pour quelle raison je veux ça: j'essaye de déterminer la taille d'un fichier de 22Go, taille retourner en octet. Je suis assez désespéré ^^ RE: Intttttttttttttteger - Myrina - 08-07-2011 Dans http://www.php.net/manual/en/intro.bc.php , il est marqué: Citation :For arbitrary precision mathematics PHP offers the Binary Calculator which supports numbers of any size and precision, represented as strings.Je pense que cette extension répondra à ton besoin RE: Intttttttttttttteger - Wells - 08-07-2011 hum vue que je lance apache avec wamp, ou que je la rajoute l'option : These functions are only available if PHP was configured with --enable-bcmath . RE: Intttttttttttttteger - Argorate - 08-07-2011 le probleme vient de la fonction filesize d'apres la doc : http://php.net/manual/fr/function.filesize.php Citation :Note: Comme le type entier de PHP est signé et que de nombreuses plates-formes utilisent des entiers de 32 bits, filesize() peut retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go. Pour les fichiers entre 2 et 4 Go, cela peut être contourné avec sprintf("%u", filesize($file)).22GO c'est trop gros manfestement^^ RE: Intttttttttttttteger - Wells - 08-07-2011 Code : <?php Tout ça me renvoi au mieux 2.2Go au lieu de 22.... RE: Intttttttttttttteger - Antyoz - 08-07-2011 Lol les matheux sont de sortie...!! RE: Intttttttttttttteger - Bertrand - 09-07-2011 Citation :La taille max d'un int est de 12363031551Je sais pas d'où ça vient mais c'est louche. En 32 bits la taille max est de ~4 milliards pour des entiers non-signés, et de ~2 milliards s'ils sont signés. Pour en revenir à ton problème: utiliser une plateforme, un OS et une distribution php 64 bits. Ça ma parait la seule solution viable (c'est la seule qui me vient à l'esprit en tous cas). Note que c'est une déduction de ma part, la doc indique que la taille des entiers est dépendante de la plate-forme, j'en déduis que si toute ta plateforme est en 64 bits ton pb est réglé, mais je n'ai pas essayé. J'ai éventuellement une autre piste (j'imagine qu'elle est bien pénible à mettre en œuvre): faire ton extension pour appeler les APIs système dédiées aux fichiers longs : fopen64, fstat64 ... Je ne sais pas si ces fonctions existent sous windows mais il y a nécessairement des équivalents, et ça implique de retourner le résultat sous forme de chaîne, puisque sous forme d'entier il sera trop long pour php. C'est clairement pas génial, je suppose que tu ne récupères pas la taille du fichier pour la beauté du geste et il faudra bien manipuler cette valeur après. RE: Intttttttttttttteger - piratequentin - 11-07-2011 Au pire tu convertit en ko c'est plus simple à lire que les octet, si tu veut regarde un tableau approximatif de conversion: 1 ko = 1024 octets 1 mo = 1024 ko 1 go = 1024 mo Donc pour avoir ta valeur en ko tu divise par 1024. Mais bon si c'est pas ça que tu cherche c'est pas grave ^^ RE: Intttttttttttttteger - niahoo - 11-07-2011 ça ce sont des kio RE: Intttttttttttttteger - piratequentin - 11-07-2011 oui mais bon c'est toujours plus simple à lire et ça prend moins de place. |