7
votes

PHP, pourquoi échappez-vous à mes citations?

Dupliqué possible: strong>
Pourquoi les personnages d'évacuation sont-ils ajoutés à la valeur de l'entrée cachée p>

Alors, j'ai un fichier appelé sauve.php. p>

Il faut deux choses: un fichier et le nouveau contenu. p>

Vous l'utilisez en envoyant une demande comme '/ ressources / sauvegarde.php? fichier = / ressources / data.json & sommaire = {"hé": "Là"}' code>. p>

.. mais bien sûr, encoder l'URL . :) Je l'ai laissé tout simplement sans encodé pour la simplicité et la lisibilité. P>

Le fichier fonctionne, mais au lieu du contenu étant .. p>

file_put_contents($url, $contents);


5 commentaires

Juste avant de sauvegarder le contenu dans le fichier, qu'est-ce que le $ _ obtient ['content'] a? A-t-il {"hé": "Là"} ou {\ "hey \": \ "là \"} ?


Ils se présentent également lors de l'utilisation de Echo, mais je n'utilise pas PHP un lot terrible, cela pourrait les ajouter aussi ou quelque chose. XD


Connexes: Stackoverflow.com/questions/220437/magic-quotes-in-php


Il a déjà été répondu, mais vous a donné une réponse adaptée à votre situation.


Dupliqué possible de Pourquoi les caractères d'évacuation sont-ils ajoutés à la valeur de l'entrée cachée


6 Réponses :


9
votes

Tourner magic_quotes Off in php.ini.


3 commentaires

La magie n'est jamais bonne dans le développement.


J'utilise la version préinstallée de PHP dans Mac OS 10.6, donc je n'ai jamais vu php.ini n'importe où. Avez-vous une idée où ce serait?


Trouvé ça. Google est la meilleure chose jamais. Éteint et maintenant tout fonctionne bien. :RÉ



4
votes

On dirait que vous avez magic_quotes allumé.

Si tel est le cas, éteignez-le - ou utilisez un Fonction de désactivation d'exécution < / a>


0 commentaires

3
votes

Vous avez probablement activé des citations magiques, seules deux choses que vous pouvez faire. Désactivez les citations magiques dans votre php.ini ou appelez stripslashes () sur $ _ obtenir et $ _ x / p> globals.

FYI, utilisez $ _ obtenir ['Contents'] par opposition à $ contenu ; Les versions plus récentes de PHP ne créeront pas le contenu $ var.


1 commentaires

Je le crée manuellement plus tôt dans le script.



2
votes

Vous devez désactiver magic_quotes dans votre fichier de configuration php.ini. Toutefois, si cela n'est pas possible, vous pouvez également utiliser la fonction Stripslashes () pour vous débarrasser de l'échappement automatique.


0 commentaires


3
votes

Essayez ceci:

file_put_contents($url, stripslashes($contents));


0 commentaires