在XML中回应PHP变量

时间:2012-09-19 17:17:37

标签: php xml curl

我正在收集表单信息,我必须将该数据发布到XML格式的URL。所以我将XML放入post字符串并使用cURL来执行帖子。我如何将正确的表单字段回显到XML中?在ProjectId中,我把我认为的代码放在了代码中,但是Notepad ++并没有将它显示为有效的PHP,所以我认为这是错误的。谢谢!

$post_string = '

<?xml version="1.0" encoding="UTF-8" ?>

<Ping vid="" sid="">                   
   <ProjectInfo>
      <ProjectId><? echo $projectid; ?></ProjectId>
      <SubProject></SubProject>
   </ProjectInfo>
 </Ping>


 ';

我正在使用此链接来弄明白:http://www.codediesel.com/php/posting-xml-from-php/

4 个答案:

答案 0 :(得分:8)

只需连接字符串

$post_string = '

<?xml version="1.0" encoding="UTF-8" ?>

<Ping vid="" sid="">                   
   <ProjectInfo>
      <ProjectId>' . $projectid . '</ProjectId>
      <SubProject></SubProject>
   </ProjectInfo>
 </Ping>


 ';

答案 1 :(得分:2)

$post_string = '

<?xml version="1.0" encoding="UTF-8" ?>

<Ping vid="" sid="">                   
   <ProjectInfo>
      <ProjectId><![CDATA['. $projectid.']]></ProjectId>
      <SubProject></SubProject>
   </ProjectInfo>
 </Ping>


 ';

在某些情况下,您的变量包含“&amp;”等字符和“&lt;”在需要变量之前和之后添加CDATA标记,因为它们会破坏XML。在你的情况下,$ projectid似乎是一个id(int),但也许你会在你的脚本中使用包含这些字符的更多变量,在这种情况下要注意CDATA标签的重要性。

答案 2 :(得分:2)

只是另一种用法。尝试使用这种样式将格式良好的xml字符串提供给php变量。

$post_string =<<<XML
<Ping vid="" sid="">                   
<ProjectInfo>
  <ProjectId>$projectid</ProjectId>
  <SubProject></SubProject>
</ProjectInfo>
</Ping>
XML;

答案 3 :(得分:1)

无需再次打开<?php ?>标记,只需连接字符串值。

$post_string = '

<?xml version="1.0" encoding="UTF-8" ?>

<Ping vid="" sid="">                   
   <ProjectInfo>
      <ProjectId>'. $projectid.'</ProjectId>
      <SubProject></SubProject>
   </ProjectInfo>
 </Ping>


 ';