2014-04-01 5 views
1

인스턴트 메신저를 사용하여 PHP를 사용하는 로컬 컴퓨터를 통해 웹 서비스 게시 요청을 시뮬레이션하려고합니다. 모든PHP의 게시물 요청에서 xml 데이터를 쓰는 중 오류가 발생했습니다.

첫째, 나는 배열 내부 포스트를 통해 XML 파일을 전송하는 PHP 파일이 있습니다

<?php 

$xml = file_get_contents('localstorage.xml'); 
$url = 'http://127.0.0.1/projects/My_webservice/rebreFitxer1.php'; 

$post_data = array('xml' => $xml,); 

$stream_options = array(
'http' => array(
    'method' => 'POST', 
    'header' => 'Content-type: application/x-www-form-urlencoded' . "\r\n", 
    'content' => http_build_query($post_data))); 

$context = stream_context_create($stream_options); 
$response = file_get_contents($url, null, $context); 

?> 

그리고 다른 측면에서 나는 XML 내용을로드하고 글을 다른 PHP 파일을 XML 파일에.

<?php 

header('Content-type: text/xml'); 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
$postText = file_get_contents('php://input'); // load the content loaded via POST 

$postText = utf8_encode($postText); 

$datetime = date('ymdHis'); 
$xmlfile = "myfile" . $datetime . ".xml"; //new file name 

$FileHandle = fopen($xmlfile, 'w') or die("can't open file"); 
// open the new file in writing mode 
fwrite($FileHandle, $postText); 
fclose($FileHandle); 

?> 

은 무엇 내가이에서 얻을 것은 내가 인코딩을 변환하는 시도했지만 아무것도 작동 보인다 나쁜 올바른 형식의 XML 느릅 나무입니다. 여기에 내가 무엇을 얻을 :

xml = % 3C % 3Fxml + 버전 % 3D % 221.0 % 22 + 인코딩 % 3D % 22utf-8 % 22 % 3F % 3E % 0A % 3CXml ........ ... 등 ---^보인다

그 상징 "<>"잘 기록되어있다 -> 공칭 % 3ERetard % 3C % 2FNom % 3E % 0A ++++++ % 3C 하지만 난 그것을 해결하는 방법을 잘 모릅니다 사전에

내가 PHP에 새로 온 사람과 뭔가 내가 나쁜 짓을했는지 거기에 있는지 메신저 ...

감사

답변

1

귀하의 XML은 $_POST["xml"] 변수에 저장되어야합니다. 시도해 볼 수 있습니다 :

<?php $postText = $_POST["xml"]; ?>

관련 문제