我有以下脚本来接收xml文件并使用file_get_contents()
读取它。我想将这个xml重定向到一个名为“register”的文件,但它不起作用,我不知道为什么。
<?php
$xml_post=file_get_contents('php://input');
$xml=simplexml_load_string($xml_post);
if($xml->action=='register')
{
header('Location: http://proiectis.host22.com/register.php');
exit;
}
?>
感谢您的帮助。
这是我的xml:
<xml version="1.0">
<action>register</action>
<parameters>
<name>Ionel Popescu</name>
<username>Ionel P</username>
<email>ionel@popescu.com</email>
<password>abdef01</password>
</parameters>
</xml>
答案 0 :(得分:2)
尝试:
if ((string) $xml->action === 'register') {
// code
}
您的xml文件中不需要</xml>
。
答案 1 :(得分:1)
我认为XML文档存在误解。
您的文档中没有XML标头,但您使用<xml>
- 元素作为根元素。
试试这个:
<?xml version="1.0"?> <!-- This is a typical xml header -->
<result> <!-- An xml document must contain exactly 1 root element -->
<action>register</action>
<parameters>
<name>Ionel Popescu</name>
<username>Ionel P</username>
<email>ionel@popescu.com</email>
<password>abdef01</password>
</parameters>
</result>
原始的PHP代码应该可以正常工作。
答案 2 :(得分:0)
$xml->action
返回SimpleXMLElement
而不是您期望的字符串。所以使用这段代码:
<?php
$xml_post=file_get_contents('php://input');
$xml=simplexml_load_string($xml_post);
if((string)$xml->action == 'register')
{
header('Location: http://proiectis.host22.com/register.php');
exit;
}
?>