-3

我正在尝试从我们网站上的表单向我们的 CRM 发送一些信息,并且在将变量插入 XML 时遇到了困难。这是我的代码的简化版本。请注意我试图在 XML 变量中插入 $email 变量的位置......这是行不通的。

<?php

$email = $_GET["email"];


$xml = '<xmlrequest>
<details>
    <emailaddress>$email</emailaddress>
    <mailinglist>8</mailinglist>
    <format>html</format>
    <confirmed>no</confirmed>
</details>
</xmlrequest>
';

 $ch = curl_init('http://mysite.com/xml.php');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
 $result = @curl_exec($ch);
 if ($result === false) {
echo "Error performing request";
 } else {
$xml_doc = simplexml_load_string($result);
header( "Location: http://mysite.com/confirmation?email=$email" ) ;

//echo 'Status is ', $xml_doc -> status, '<br/>';
 if ($xml_doc -> status == 'SUCCESS') {
    echo 'Data is ', $xml_doc -> data, '<br/>';

} else {
    echo 'Error is ', $xml_doc -> errormessage, '<br/>';
}
}

?>

如果我只是输入 API 的电子邮件地址值,则可以正常工作。但是,我对如何从 PHP 变量中动态提取它一无所知。任何帮助是极大的赞赏!

4

1 回答 1

1

字符串定义不好用这个

$xml = "<xmlrequest>
<details>
    <emailaddress>{$email}</emailaddress>
    <mailinglist>8</mailinglist>
    <format>html</format>
    <confirmed>no</confirmed>
</details>
</xmlrequest>";

或这个

$xml = '<xmlrequest>
<details>
    <emailaddress>' . $email . '</emailaddress>
    <mailinglist>8</mailinglist>
    <format>html</format>
    <confirmed>no</confirmed>
</details>
</xmlrequest>';

因为这个变量可能是各种字符串,我认为最好<![CDATA[]]>在电子邮件周围使用部分。

于 2012-06-26T23:47:41.873 回答