[RESOLU] Des \r dans fichier JSON généré

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Des \r dans fichier JSON généré

Re: Des \r dans fichier JSON généré

par hikaru59 » 01 oct. 2021, 12:33

Merci, c'est parfait avec \r\n

J'avais testé avec \n\r, mais ça ne marchait pas.

Re: Des \r dans fichier JSON généré

par or 1 » 01 oct. 2021, 00:25

Re: Des \r dans fichier JSON généré

par hikaru59 » 30 sept. 2021, 23:53

En effet, il y des sauts de ligne enregistré dans la BDD.
Ce sont des données insérées automatiquement à partir d'un fichier CSV.

Voici mon fichier csv :
Terry;Bogard;terrybogard_at-email_net
Andy;Bogard;andybogard_at_email_net
Joe;Higashi;joehigashi_at-yahoo_com

Voici mon script d'insertion automatique de données. Je ne vois pas comment je peux corriger cela.

Code : Tout sélectionner

$contenu = file_get_contents('users.csv'); // Récupère le contenu $data = explode("\n", $contenu); // explode() coupe une chaîne en segments et retourne un tableau. On coupe au retour chariot \r ou nouvelle ligne \n foreach ($data as $d) { $d = explode(";", $d); // explode() coupe une chaîne en segments et retourne un tableau. On coupe au ; $firstname = $d[0]; $lastname = $d[1]; $email = $d[2]; $query = $db->prepare('INSERT INTO users (`firstname`, `lastname`, `email`) value (:firstname, :lastname, :email)'); $query->bindValue(':firstname', $firstname, PDO::PARAM_STR); $query->bindValue(':lastname', $lastname, PDO::PARAM_STR); $query->bindValue(':email', $email, PDO::PARAM_STR); // $query->execute(); }
Si je fais explode() sur \r, alors c'est des \n qui sont insérés dans la BDD.

Re: Des \r dans fichier JSON généré

par or 1 » 30 sept. 2021, 22:53

s'il y a les \r avec :
var_dump($results);
c'est que le problème ne vient pas du json, mais de ce qui a été sauvé en bdd.

Des \r dans fichier JSON généré

par hikaru59 » 30 sept. 2021, 22:23

Bonjour,
J'ai généré un JSON avec des données dans la BDD :

Code : Tout sélectionner

$query = $db->query('SELECT * FROM users ORDER BY id'); $results = $query->fetchAll(PDO::FETCH_ASSOC); header('Content-Type: application/json'); $json = json_encode($results); echo $json;
J'obtiens un fichier JSON, mais il y a \r dedans :

Code : Tout sélectionner

[ {"id":"1","firstname":"Terry","lastname":"Bogard","email":"terrybogard_at-email_net\r"}, {"id":"2","firstname":"Andy","lastname":"Bogard","email":"andybogard_at_email_net\r"}, {"id":"3","firstname":"Joe","lastname":"Higashi","email":"joehigashi_at-yahoo_com"} ]
J'ai essayé de supprimer les \r avant d'afficher, mais ça ne marche pas :

Code : Tout sélectionner

str_replace('\r', '', $json); echo $json;