Segmenter une grosse variable en bouts d'un Mo - PHP - Programmation
Marsh Posté le 11-10-2010 à 10:51:32
tu ne peux pas faire ça au chargement de ta grosse variable ?
Marsh Posté le 11-10-2010 à 17:40:16
nope, ma grosse variable est le résultat d'un déchiffrement d'une donnée via une fonction encapsulée dans une DLL externe au code PHP, donc impossible ...
Je vais voir ce que donnent des substr mis à la chaine.
Marsh Posté le 12-10-2010 à 09:41:05
tu peux la déchiffrer dans un fichier temporaire, et faire ce que dit flo après
Marsh Posté le 12-10-2010 à 11:14:06
Le problème de cette opération, c'est que mettre la variable de 50 megs dans mon fichier temporaire me prend 10 secondes facile, donc c'est pas top optimisé côté temps !
Marsh Posté le 12-10-2010 à 12:59:00
Non mais attend, réfléchis.
Tu ne veux pas mettre ton fichier en RAM car ça te bouffe trop de RAM.
Tu ne veux pas mettre ton fichier en tmp sur le HDD parce que trop lent.
Concrètement, tu veux qu'il soit stocké ou ton truc?
Marsh Posté le 12-10-2010 à 13:49:11
y'a une solution, tu peux déchiffrer en stream avec mdecrypt avec le wrapper php://filter
EDIT : ou faire ton filtre custom
Marsh Posté le 12-10-2010 à 16:20:18
esox_ch a écrit : Non mais attend, réfléchis. Concrètement, tu veux qu'il soit stocké ou ton truc? |
Je veux bien le monter en RAM une fois, mais taper dans le fichier monté en RAM ensuite. Le problème est que je ne peux pas taper dans la data direct sans doubler cette valeur à un moment, ne serait-ce que pour piocher des segments de cette data A moins que tu ne connaisses un biais !
Marsh Posté le 12-10-2010 à 16:21:13
stealth35 a écrit : y'a une solution, tu peux déchiffrer en stream avec mdecrypt avec le wrapper php://filter |
C'est une méthode de chiffrement particulière, là dessus, impossible de procéder autrement que la méthode du protocole qui lui est associée (protocole EBICS bancaire)
Marsh Posté le 12-10-2010 à 16:29:27
Attend j'ai pas compris pourquoi ça devrait doubler à un moment
Tu peux expliquer plus en détails?
Marsh Posté le 13-10-2010 à 09:43:52
Thordax a écrit : |
tu dois faire quoi de tes segment
est ce que qq chose du genre :
Code :
|
au pire tu consommes sizeof(grosBout ) + sizeof(segment)
Marsh Posté le 13-10-2010 à 17:02:43
esox_ch a écrit : Attend j'ai pas compris pourquoi ça devrait doubler à un moment |
J'ai cru que ça doublerait car je pensais que le substr allait recopier la data d'origine puis la tronquer ensuite, donc faire une explosion en mémoire, mais après tests, ce n'est pas le cas
flo850 a écrit :
|
Yep merci beaucoup pour ton bout de code, c'est nickel chrome !
Marsh Posté le 13-10-2010 à 17:06:15
Je ne donne pas ce genre d'infos
Marsh Posté le 11-10-2010 à 10:26:44
Je souhaite scinder une grosse variable en bouts d'un méga, ce sans faire exploser la mémoire. J'avais pensé à des substr les uns à la suite des autres, ou un array_slice.
Mais en gros, je voudrais avoir une syntaxe s'approchant de : $ma_big_variable[0:5] un peux comme en C++, c'est possible ?
Message édité par Thordax le 11-10-2010 à 10:27:00
---------------
Atari 520 ST 256 Ko