J'utilise un script bash pour courber un fichier XMLRPC.
Cependant, le fichier XML que je vous envoie ne contient souvent des variables bash et d'autres caractères parasites (et/ou variables) comme "
, '
, $
, $HOME
etc.comment encoder des données pour que Bash n'interfère pas avec le contenu (script bash utilisant PHP)
Je ne suis pas sûr de ce que tous les caractères n'interfèrent ici ou si ceci est lié à autre chose.
Quand je lance un XML très minime dans le même script, je reçois les résultats escomptés, mais un fichier XML avec les caractères ci-dessus (ou variables) me donne: parse error. not well formed
Toute aide est vraiment apprécié ici!
Cordialement
Nikhil Gupta
CODE AJOUTÉE:
curl -k -H "Content-Type: application/xml" -X POST --data-urlencode "${XML}" $URL/xmlrpc.php
data1=$(php -r "echo htmlentities('$data1',ENT_QUOTES,'UTF-8');")
data2=$(php -r "echo htmlentities('$data2',ENT_QUOTES,'UTF-8');")
XML $ est XML qui utilise des variables data1
et data2
, qui contiennent les caractères problématiques, par exemple le code XML suivant donne une erreur:
<?xml version='1.0' encoding='iso-8859-1'?>
<methodCall>
<methodName>get.usage</methodName>
<params>
<param>
<struct>
<member> <name>script</name> <value> <string>#!/bin/bash echo $HOME;</string> </value> </member>
</struct>
</param>
</params>
</methodCall>
Informations insuffisantes. Comment s'intègre PHP, comment appelez-vous curl, etc.? Poster au moins le code clé. –
a ajouté le code .. pouvez-vous jeter un oeil maintenant? – Stoic