Ashish
Ashish

Reputation: 17

php- How to send $_POST data to xml?

I have a php file that contains:

<?php
$no = $_POST['no'];
$url = "http://domain.tld/answer.xml";
?>

The $url stores a URL that links to an xml file and that xml files is like:

<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" > 
<Call> </Call>
</vxml>

I want to pass the $_POST['no'] to my xml file. Suppose if $_POST['no'] is 9999988888, then the tag in xml should be like:

<Call>9999988888</Call>

Can anyone tell how to do this? :)

that xml file is on my own server.

Upvotes: 1

Views: 629

Answers (3)

Sudhir Bastakoti
Sudhir Bastakoti

Reputation: 100175

you could use simplexml, as:

$no = $_POST['no'];
$xml = simplexml_load_file('your_xml_file.xml');
$xml->Call = $no; 
//save/update your xml
$xml->asXML('your_xml_file.xml');

Upvotes: 1

Apul Gupta
Apul Gupta

Reputation: 3034

Your XML should have some keywords, i.e.

<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1" > 
<Call>{{CALL}}</Call>
</vxml>

In your PHP File, just fetch this XML & use str_replace to replace those keywords,

<?php
$no = $_POST['no'];
$url = "http://domain.tld/answer.xml";
$xml = file_get_contents($url);
$newXML = str_replace("{{CALL}}", $no, $xml);
header('Content-type: text/xml');
echo $newXML;
?>

Upvotes: 0

blue112
blue112

Reputation: 56442

You need to generate the xml using PHP.

First of all, rename your .xml to .php.

Then, start it using

<?php
header('Content-type: text/xml');
?>

When you reach your call tag, change it to :

<Call><?php echo intval($_GET['no']); ?></Call>

Note: I've assumed your no is a number. If it's not, remove intval. It's nice to have it as it will protect you from injections.

At last, call your XML file using :

 $url = "http://domain.tld/answer.php?no=8877454";

Upvotes: 0

Related Questions