php-如何将$ _POST数据发送到xml?

时间:2014-10-15 07:32:04

标签: php xml

我有一个包含以下内容的php文件:

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

$ url存储链接到xml文件的URL,xml文件如下:

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

我想将$ _POST [&#39; no&#39;]传递给我的xml文件。假设$ _POST [&#39; no&#39;]是9999988888,那么xml中的标记应该是这样的:

<Call>9999988888</Call>

有人能告诉你怎么做吗? :)

xml文件在我自己的服务器上。

3 个答案:

答案 0 :(得分:1)

你可以使用simplexml,因为:

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

答案 1 :(得分:0)

您需要使用PHP生成xml。

首先,将.xml重命名为.php。

然后,使用

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

当您到达来电标签时,请将其更改为:

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

注意:我假设您的no是一个数字。如果不是,请删除intval。它很好,因为它可以保护你免受注射。

最后,使用以下命令调用XML文件:

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

答案 2 :(得分:0)

您的XML应该有一些关键字,即

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

在您的PHP文件中,只需获取此XML&amp;使用str_replace替换这些关键字,

<?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;
?>