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

Eléphant du PHP | 419 Messages

21 mai 2014, 18:02

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 !
Aucun site en création...

ViPHP
ViPHP | 3607 Messages

21 mai 2014, 18:07

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,

Eléphant du PHP | 419 Messages

22 mai 2014, 10:03

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...
Aucun site en création...