Question

Je suis en train de passer mon tableau de latitude et lng à mon script PHP afin que le script peut enregistrer dans un fichier txt.

je parviens à sérialiser mon tableau et passer au script php ... et sur le côté php, je parviens à désérialisable. Cependant, quand j'écrire le tableau dans le fichier, le fichier ne montrent que « tableau array » ... et non la valeur ... supposons être « (1,3567, 103,124252) (1,3543, 103,436435) ».

Voici mon exemple de code (à serialize):

function serialize(mixed_value) 
   { 
    var _getType = function( inp ) {
    var type = typeof inp, match;
    var key;
    if (type == 'object' && !inp) {
     return 'null';
    }
    if (type == "object") {
     if (!inp.constructor) {
      return 'object';
     }
     var cons = inp.constructor.toString();
     match = cons.match(/(\w+)\(/);
     if (match) {
      cons = match[1].toLowerCase();
     }
     var types = ["boolean", "number", "string", "array"];
     for (key in types) {
      if (cons == types[key]) {
       type = types[key];
       break;
      }
     }
    }
    return type;
   };
   var type = _getType(mixed_value);
   var val, ktype = '';

   switch (type) {
    case "function": 
     val = ""; 
     break;
    case "undefined":
     val = "N";
     break;
    case "boolean":
     val = "b:" + (mixed_value ? "1" : "0");
     break;
    case "number":
     val = (Math.round(mixed_value) == mixed_value ? "i" : "d") + ":" + mixed_value;
     break;
    case "string":
     val = "s:" + mixed_value.length + ":\"" + mixed_value + "\"";
     break;
    case "array":
    case "object":
     val = "a";
     var count = 0;
     var vals = "";
     var okey;
     var key;
     for (key in mixed_value) {
      ktype = _getType(mixed_value[key]);
      if (ktype == "function") { 
       continue; 
      }

      okey = (key.match(/^[0-9]+$/) ? parseInt(key, 10) : key);
      vals += serialize(okey) +
        serialize(mixed_value[key]);
      count++;
     }
     val += ":" + count + ":{" + vals + "}";
     break;
   }
   if (type != "object" && type != "array") {
     val += ";";
    }
   return val;
   }

PHP (pour désérialiser coller au fichier):

$data = $_POST['y'];

$arr = unserialize($data); 

$fp=fopen("route.txt","w+");
foreach($arr as $key => $value){
fwrite($fp,$value."\t");
}

MERCI pour votre aide! : D

Était-ce utile?

La solution

  1. roues Réinventer beaucoup? :) Il y a déjà JSON expressément à cet effet, et il y a une tonne de bibliothèques là-bas pour en - et le décodage JSON dans à peu près toutes les langues. PHP est livré avec json_decode .
  2. Lors de l'écriture au fichier, $value lui-même est un tableau. Quand un tableau est coulé en une chaîne (qui est nécessaire pour fournir en sortie), il sera coulé à la chaîne « Array » . Utilisation join(',', $value) pour délivrer toutes les valeurs de la matrice séparés par des virgules.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top