XML 파일을 POST를 통해 원격 서버의 양식에 보내려고합니다. XML 데이터를 즉시 생성하고 $ XmlData라는 변수에 문자열로 저장합니다. 이것은 내 여는 태그 (아래 예제 참조)로 시작하는 문자열이므로 ...이 문자열에는 "헤더"가 없습니다. XML 파일로 임시 디렉토리에 서버에 쉽게 쓸 수 있습니다 ...하지만 이상적으로 파일을 것처럼 게시 할 수 있지만 파일을 만드는 단계를 추가하지 않고 (다음에 할 것이다PHP를 사용하여 XML 파일을 생성하지 않고 cURL을 통해 XML을 게시합니다.
$url = 'http://www.mydomain.com/path/to/form/process.php';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
curl_setopt($ch, CURLOPT_URL, _VIRUS_SCAN_URL);
curl_setopt($ch, CURLOPT_POST, true);
// same as <input type="file" name="xmlfileresource">
$post = array(
"xmlfileresource"=>"@/path/to/myfile.xml",
"action"=>"incomingXml",
"user"=>"JohnSmith",
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);
내 질문이 있습니다 ... 다음은 내가 실제로 먼저 만든 경우 내 XML 파일을 업로드 할 수 있도록해야한다고 생각 코드는 ...) afterwords 삭제 : 내가 스트리밍 할 수있는 방법/방울/어떤 이 cURL 실행에 대한 $ XmlData 문자열의 내용은 원격 서버가 POST되는 일반 파일 일 뿐이라고 생각합니까?
정말 관련 없음,하지만 경우에 그것은 ... 내 $의 XMLDATA 문자열은 다음과 같이 보일 수 있습니다 :
<clientversion>
<component>
<type>module</type>
<name>resources</name>
<version>2.7.3</version>
<date>2012-09-01 02:18:33</date>
</component>
<component>
<type>module</type>
<name>staff</name>
<version>3.1</version>
<date>2011-04-01 07:12:48</date>
</component>
</clientversion>
http://stackoverflow.com/questions/3085990/post-a-file-string-using-curl-in-php는 내가 본 유일한 해결책입니다. 하지만 파일에 쓰는 것이 불행히도 여전히 깨끗해질 것이라고 생각합니다. –
@Brenton Alker 나는 그 접근법이 단지 임시 파일을 사용하는 것보다 훨씬 더 awk하다고 동의한다. 너무 나쁘다 ... 나는 그 모든 것을 기억하고 싶다. 그러나 그것을 성취 할 실제 방법이 없다. 나는 그것을 파일에 쓰고, 게시하고, 파일을 삭제할 것이다. 감사. – techtheatre