php
  • xml
  • api
  • http
  • curl
  • 2012-06-26 71 views -3 likes 
    -3

    我試圖從我們的網站上的窗體向我們的CRM發送一些信息,並且將變量插入到XML中時發生卡住。這是我的代碼的簡化版本。注意我試圖在XML變量中插入$ email變量的地方......這不起作用。使用PHP/curl在XML中插入查詢字符串變量

    <?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變量中動態獲取這些信息毫無頭緒。任何幫助是極大的讚賞!

    +1

    你不會看到'echo'一旦你發送的報頭重定向.. – nickb

    +0

    我覺得代碼的仔細檢查將在這裏解決了這個問題... – Ravish

    回答

    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[]]>部分。

    +0

    PazsitZ - 你是男人...第二個片段就像一個魅力。乾杯! – Media804

    相關問題