2015-02-02 2 views
0

Я пытаюсь включить переменную PHP внутри строки XML. Кажется, он не работает, может кто-то увидеть, что с ним не так.Как включить переменную PHP в строку XML

// 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

Кажется, все прекрасно работает: http://codepad.org/e1fc29Yl. Возможно, укажите более конкретный контекст, проверьте значения '$ firstname',' $ lastname' и т. Д. ... –

+1

Посмотрите на свой XML-код не в правильном формате. Выполните отметку с середины. –

ответ

-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; 
+1

и это решение ... КАК? Если heredoc OP не работает, переключение на многострочную строку также не поможет. –

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> 

В некоторых случаях, когда переменная содержит символы, такие как «&» и «<», добавив теги CDATA до и после того, как переменная необходима, так как они нарушают XML. В вашем случае $ projectid, похоже, является id (int), но, возможно, вы будете использовать больше переменных в своем скрипте, которые содержат эти символы, и должны знать о важности тегов CDATA в таких случаях. Пример:

<field name="First Name"><![CDATA['. $firstname.']]></field> 
Смежные вопросы