Page 1 sur 1

Différence entre variable et lecture d'un fichier JSON.

Posté : 21 mai 2014, 18:02
par the_grinch
Bonjour,
Je vous explique rapidement même si ça n'a aucun rapport.
J'ai plusieurs fichiers XML avec leur schéma XSD.
Je souhaite tout sérialiser en Avro (BigData) mais ça ne fonctionne pas alors je cherche un moyen de le faire avec un JSON, j'ai alors téléchargé les fichiers php d'AVRO. (dispo sur leur site).

Néanmoins, je ne comprends pas quelque chose dans leur fichier d'exemple.
Il y a ceci :
$writers_schema_json = <<<_JSON
{"name":"member",
 "type":"record",
 "fields":[{"name":"member_id", "type":"int"},
           {"name":"member_name", "type":"string"}]}
_JSON;
Et moi j'aimerai lire dans un fichier...
J'ai donc fait ceci :
$writers_schema_json = file_get_contents("schema.json");
et dans schema.json, il y a :

Code : Tout sélectionner

{ "name":"member", "type":"record", "fields":[ {"name":"member_id", "type":"int"}, {"name":"member_name", "type":"string"} ] }
Mais ça ne fonctionne pas...

Que signifie "<<<_JSON" au début et "_JSON" à la fin de la variable ?

ça fait longtemps que je n'ai pas programmé en PHP et je dois m'y remettre dans le cadre d'un stage... (j'ai toujours programmé pour le plaisir)

Je vous remercie !

Re: Différence entre variable et lecture d'un fichier JSON.

Posté : 21 mai 2014, 18:07
par jojolapine
Bonjour,

La syntaxe utilisée est heredoc (ou nowdoc je ne sais plus) : http://www.php.net/manual/en/language.t ... ax.heredoc

Ensuite : "ça ne fonctionne pas..." qu'est-ce que ça veut dire ? des erreurs affichées ? le fonctionnement n'est pas bon ?

Que donne un var_dump() de la variable $writers_schema_json juste après le file_get_contents ?

Cordialement,

Re: Différence entre variable et lecture d'un fichier JSON.

Posté : 22 mai 2014, 10:03
par the_grinch
Bonjour,
Eh bien après il utilise :
// Open $file_name for writing, using the given writer's schema
$data_writer = AvroDataIO::open_file($file_name, 'w', $writers_schema_json);
Mais je ne pense pas que ce soit très pertinent.
Je souhaiterai avoir la même forme de variable pour que quand je lise le fichier, ça soit la même chose que si je mettais le contenu directement dans le code.

En fait je viens de m'apercevoir qu'il y a un problème d'encodage...
Mon fichier schema.json est en UTF-8, je le modifie en AINSI ou UTF-8(sans DOM) avec notepad++, il n'y a plus aucun problème.

(en UTF-8, ça rajoute "" au début de la ligne...)

Je vous remercie, finalement ce n'était pas un vrai problème...