Je lis les octets d'un fichier et les traite. Ensuite, je voudrais enregistrer les octets emballés.utiliser PHP pour décompresser, traiter et emballer le tableau
Quelle est la méthode générique recommandée pour convertir un tableau avec des objets/types mixtes en une chaîne d'octets? Dans mon cas: array avec int et string, pack types a, C, x.
Un exemple simplifié:
// $bytes = fread($handle, 100);
$bytes = "437XYZ25.011001DBEFORE ....";
$unpackString = "a3CPN/x8spare/CDSC/x4spare/a32OPT";
$unpacked = unpack($unpackString, $bytes);
var_dump($unpacked);
/*
array(3) {
["CPN"]=> string(3) "437"
["DSC"]=> int(49)
["OPT"]=> string(32) "BEFORE "
}
*/
// example of processing
$unpacked["DSC"] = 12;
$unpacked["OPT"] = "AFTER ";
// pack + write the result
// $packString = "a3x8Cx4a32";
$packTypes = ["a3","x8","C","x4","a32"];
$packFields = [ $unpacked["CPN"], null, $unpacked["DSC"], null, $unpacked["OPT"] ];
// ...
mise à jour: dans l'exemple simplifié j'ai remplacé $packString
avec $packTypes
et $packFields
pour vous assurer qu'il est clair que le contenu appartient où et avec quel type.
Quelle est la question? Vous utilisez 'unpack' pour décompresser le tableau, pourquoi ne pouvez-vous pas utiliser' pack' pour l'emballer à nouveau? Le problème est-il dû au fait que 'pack' accepte des arguments au lieu d'un seul tableau? –
En effet. Comment emballer en utilisant le tableau. – wivku