2013-04-05 2 views
0

게시 할 때마다 XML_PAYLOAD이 여러 개 있습니다 (while 루프마다 다른 xml 게시물). 루프를 실행할 때 첫 번째 $i 루프의 데이터는 POST입니다. 각 $i 루프에 대해 POST 새 데이터를 얻으려면 어떻게해야합니까?CURL을 사용하는 루프가있는 PHP 다중 XML POST

$i = 0; 
while ($i < $num) { 

...data 

define("XML_PAYLOAD", "<?xml stuff and tags?>"); 
define("XML_POST_URL", "http://theurl"); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, XML_POST_URL); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
curl_setopt($ch, CURLOPT_POSTFIELDS, XML_PAYLOAD); 

$result = curl_exec($ch); 
curl_close($ch); 

$i++; 
} 
+0

루프에서 가져온 다른 데이터가 있어야하므로 루프가 있어야합니다. – ToddN

+0

언뜻보기에 정의를 사용하는 것이 문제가됩니다. 한 번만 상수를 정의 할 수 있습니다. 따라서 페이로드가 각 루프마다 다르면 XML_PAYLOAD 또는 XML_POST_URL을 다시 정의 할 수 없으므로 동일한 작업을 $ num 번 보내야합니다. – EmmanuelG

+0

물론, 이것은 지금까지 감사합니다. – ToddN

답변

1

define은 상수를 정의합니다. 일단 설정되면 변경 될 수 없음을 의미합니다. 다음과 같은 변수를 사용해야합니다 :

define("XML_POST_URL", "http://theurl"); 
$i = 0; 
while ($i < $num) { 

...data 

$xml_payload = "<?xml stuff and tags?>"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, XML_POST_URL); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
curl_setopt($ch, CURLOPT_POSTFIELDS, XML_PAYLOAD); 

$result = curl_exec($ch); 
curl_close($ch); 

$i++; 
} 
+0

매우 간단하고 쉽게 간과 해, 고맙습니다. – ToddN

관련 문제