Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP脚本填充XML_Php_Xml_Forms - Fatal编程技术网

用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

我们都很熟悉在HTML页面中“嵌入”PHP脚本来执行诸如显示表单结果之类的任务,但是如何以显示XML的方式来实现这一点呢

例如,如果我写:

<?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。谢谢-非常简洁,我会测试它。谢谢-非常简洁,我会测试它。感谢您提供的详细解决方案-非常感谢。感谢您提供的详细解决方案-非常感谢。