如何在XML字符串中包含PHP变量

时间:2015-02-02 18:32:04

标签: php xml string

我正在尝试在XML字符串中包含一个PHP变量。它似乎没有用,有人可以看出它有什么问题。

// Construct contact data in XML format
$data = <<<STRING
<contact>
<Group_Tag name="Contact Information">
<field name="First Name">$firstname</field>
<field name="Last Name">$lastname</field>
<field name="Email">$email</field>
</Group_Tag>
</contact>
<Group_Tag name="Sequences and Tags">
<field name="Contact Tags">Test</field>
<field name="Sequences">*/*3*/*8*/*</field>
</Group_Tag>
</contact>
STRING;

$data = urlencode(urlencode($data));

2 个答案:

答案 0 :(得分:1)

这会起作用!!

<contact>
 <Group_Tag name="Contact Information">
  <field name="First Name">'. $firstname.'</field>
  <field name="Last Name">'. $lastname.'</field>
  <field name="Email">'. $email.'</field>
 </Group_Tag>
</contact>

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

<field name="First Name"><![CDATA['. $firstname.']]></field>

答案 1 :(得分:-1)

试试这个:

$data = "
 <contact>
    <Group_Tag name=\"Contact Information\">
    <field name=\"First Name\">$firstname</field>
    <field name=\"Last Name\">$lastname</field>
    <field name=\"Email\">$email</field>
    </Group_Tag>
    </contact>
    <Group_Tag name=\"Sequences and Tags\">
    <field name=\"Contact Tags\">Test</field>
    <field name=\"Sequences\">*/*3*/*8*/*</field>
    </Group_Tag>
  </contact>
";

echo $data;