Need to stripslashes()
:
$string = stripslashes($_POST['xml']);
if($xml_test = simplexml_load_string($string))
{
$xml_test->saveXML('test.xml');
}
It would be better to turn off magic_quotes_gpc
in php.ini:
题
I receive a $_POST array from a system after a certain action has been performed on a database. I've tried accesing the array and saving it as an simple_xml object. So far I have not succeeded. The array which is being sent looks like this.
Array
(
[xml] => <?xml version=\"1.0\"?>
<callback><profile><id>313009</id><fields><email>tomkriek@gmail.com</email><nieuwsbrief>8</nieuwsbrief></fields><interests></interests></profile><action>update</action><parameters><nieuwsbrief>8</nieuwsbrief></parameters></callback>
)
I've tried storing this as a simple_xml object like this.
if($xml_test = simplexml_load_string($_POST['xml']))
{
$xml_test->saveXML('test.xml');
}
I can save a different kind of .xml file so I'm sure the permissions are set right. As for the rest I'm not that familiar with formatting and parsing .xml files so I hope anyone could help a hand with this.
My desired outcome is that I can access the newly made simple_xml object and access the values and fields.
解决方案
Need to stripslashes()
:
$string = stripslashes($_POST['xml']);
if($xml_test = simplexml_load_string($string))
{
$xml_test->saveXML('test.xml');
}
It would be better to turn off magic_quotes_gpc
in php.ini:
其他提示
saveXML() will write out the XML into the file. If you want to access the XML elements you will need to do so by doing something like
$action = $xml_test->action;
echo $action;
You can try printing out the simplexml object so you can see its structure of it by doing
print_r($xml_test);