用PHP脚本填充XML
我们都很熟悉在HTML页面中“嵌入”PHP脚本来执行诸如显示表单结果之类的任务,但是如何以显示XML的方式来实现这一点呢 例如,如果我写:用PHP脚本填充XML,php,xml,forms,Php,Xml,Forms,我们都很熟悉在HTML页面中“嵌入”PHP脚本来执行诸如显示表单结果之类的任务,但是如何以显示XML的方式来实现这一点呢 例如,如果我写: <?xml version='1.0' ?> <Response> <?php $body = $_GET['Body']; $fromPh = $_GET['From']; echo "<Msg>Your number is: $fromPh, and you t
<?xml version='1.0' ?>
<Response>
<?php
$body = $_GET['Body'];
$fromPh = $_GET['From'];
echo "<Msg>Your number is: $fromPh, and you typed: $body.</Msg>"
?>
</Response>
我收到一条消息,上面写着“解析错误,第1行出现意外的T_字符串”。任何帮助或教程都将不胜感激。第一个问号和
xml
之间不需要空格:PHP看到
请注意,语句以嵌套的括号和问号打开和关闭,并且被引用的应用程序的名称必须紧跟在第一个问号之后,前面没有空格。应用程序的信息可以是一个简短的语句,或者,在PHP的情况下,可以继续显示页面
重点是我的。在第一个问号和xml
之间不需要空格:PHP看到
请注意,语句以嵌套的括号和问号打开和关闭,并且被引用的应用程序的名称必须紧跟在第一个问号之后,前面没有空格。应用程序的信息可以是一个简短的语句,或者,在PHP的情况下,可以继续显示页面
重点是我的。删除之间的空格删除函数genOutput()之间的空格{
$output=header(“内容类型:text/xml”);
$output.=“\n”;
$output.=''.$title.\n“;
$output.=''.$text.\n;
$output.=“\n”;
返回$output;
}
函数genOutput(){
$output=header(“内容类型:text/xml”);
$output.=“\n”;
$output.=''.$title.\n“;
$output.=''.$text.\n;
$output.=“\n”;
返回$output;
}
echo-echo
应该是echo
。学习基本语法。echo-echo
应该是echo
。学习基本语法。您可以将第一行更改为:
<?php echo '<?xml...'; ?>
这将解决问题,如果您愿意,您还可以解散php短标签
您还可以执行以下操作:
<?php
$body = $_GET['Body'];
$fromPh = $_GET['From'];
echo <<<XMLCODE
<?xml version='1.0' ?>
<Response>
<msg>Your number is: $fromPh, and you typed: $body.</Msg>
</Response>
XMLCODE;
?>
您的号码是:$fromPh,您键入:$body。
XMLCODE;
?>
您可以将第一行更改为:
<?php echo '<?xml...'; ?>
这将解决问题,如果您愿意,您还可以解散php短标签
您还可以执行以下操作:
<?php
$body = $_GET['Body'];
$fromPh = $_GET['From'];
echo <<<XMLCODE
<?xml version='1.0' ?>
<Response>
<msg>Your number is: $fromPh, and you typed: $body.</Msg>
</Response>
XMLCODE;
?>
您的号码是:$fromPh,您键入:$body。
XMLCODE;
?>
模板化XML和HTML之间没有太大区别
<Response>
<Msg>
Your number is: <?php echo htmlspecialchars($_GET['From']); ?>
and you typed: <?php echo htmlspecialchars($_GET['Body']); ?>
</Msg>
</Response>
你的电话号码是:
你输入了:
如果您的PHP安装被配置为允许使用“短标记”(即,),那么模板化XML和HTML之间没有太大区别
<Response>
<Msg>
Your number is: <?php echo htmlspecialchars($_GET['From']); ?>
and you typed: <?php echo htmlspecialchars($_GET['Body']); ?>
</Msg>
</Response>
你的电话号码是:
你输入了:
如果您的PHP安装配置为允许“短标记”(即,只需使用PHP的原生XML类(),它还将为您提供必要的数据转义等:
<?php
// Your datas from somewhere
$fromPh = '867-5309';
$body = 'The quick brown fox jumped over the <properly encoded?> dog.';
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(true);
$writer->setIndentString(' ');
$writer->startDocument('1.0', 'UTF-8');
$writer->startElement('Response');
$writer->writeElement('Msg', 'Your number is: '.$fromPh.', and you typed: '.$body);
$writer->endElement();
$writer->endDocument();
print $writer->outputMemory();
你的电话号码是:867-5309,你键入:那只敏捷的棕色狐狸跳过了正确编码的狗。
使用PHP的原生XML类(),它还将为您提供必要的数据转义等:
<?php
// Your datas from somewhere
$fromPh = '867-5309';
$body = 'The quick brown fox jumped over the <properly encoded?> dog.';
$writer = new XMLWriter();
$writer->openMemory();
$writer->setIndent(true);
$writer->setIndentString(' ');
$writer->startDocument('1.0', 'UTF-8');
$writer->startElement('Response');
$writer->writeElement('Msg', 'Your number is: '.$fromPh.', and you typed: '.$body);
$writer->endElement();
$writer->endDocument();
print $writer->outputMemory();
你的电话号码是:867-5309,你键入:那只敏捷的棕色狐狸跳过了正确编码的狗。
我对PHP不熟悉-当代码运行时,我将如何显示此函数的输出?我对PHP不熟悉-当代码运行时,我将如何显示此函数的输出?如果PHP变量short_open_标记处于打开状态,这并不能解决问题,正如该链接在下面的“short tag”部分中引用的内容所述。好的,修复了代码-尽管仍在寻找解决方案(相同的错误)。如果php变量short_open_标记处于打开状态,这并不能解决问题,正如该链接在您的报价下面标题为“the short tag”的部分中进一步描述的那样。好的,修复了代码-尽管仍在寻找解决方案(相同的错误)对于标准的严格解释和松散解释总是有争议的,但是W3C建议的第2.8节说:“XML文档应该以一个XML声明开始,该声明指定了所使用的XML版本”。应该并不意味着必须这样做,但我不建议仅仅因为第一次尝试包含它就忽略它不行。我正在尝试在.HTACCESS中禁用短标记-感谢您的贡献。我喜欢这个解决方案,因为它是最精简的,并且澄清了短标记问题。再次感谢Bobince。对于标准的严格解释和松散解释总是存在争议,但是W3C建议的第2.8节说:“XML文档应该从通过一个XML声明来指定正在使用的XML的版本。应该并不意味着必须这样做,但我不建议因为第一次尝试包含它不起作用而忽略它。我正在尝试在.HTACCESS中禁用短标记-感谢您的贡献。我喜欢这个解决方案,因为它是最精简的,并且澄清了Shor阶段问题。再次感谢Bobince。谢谢-非常简洁,我会测试它。谢谢-非常简洁,我会测试它。感谢您提供的详细解决方案-非常感谢。感谢您提供的详细解决方案-非常感谢。