2011-08-25 57 views
7

Tôi gửi một yêu cầu đến một máy chủ php với XML trong nội dung:Cách nhận nội dung yêu cầu (nội dung) trong PHP?

POST /index3.php HTTP/1.0 
Connection: Close 
Accept: application/xml 
Content-Type: text/xml 

<?xml version="1.0" encoding="UTF-8"?> 
<root /> 

Tôi đã kiểm tra trong globals vars (như $_GET, $_POST, $_ENV, $_FILES, $_REQUEST ...) nhưng họ tất cả đều trống.

Tôi làm cách nào để truy xuất nội dung trong máy chủ?

+0

Related: https://stackoverflow.com/q/8945879/3995261 – YakovL

Trả lời

11

Hãy thử điều này

$xml = file_get_contents('php://input'); 

Từ manual:

php: // đầu vào là một dòng suối chỉ đọc cho phép bạn đọc dữ liệu thô ra khỏi cơ thể theo yêu cầu.

1

Nó có thể là trong $HTTP_RAW_POST_DATA (tùy thuộc vào always_populate_raw_post_data thiết lập), hoặc bạn có thể lấy nó bằng cách gọi file_get_contents("php://input") (manual).

1

Hãy thử điều này:

<?php 
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){ 
    $xml = $GLOBALS["HTTP_RAW_POST_DATA"]; 
    $file = fopen("data.xml","wb"); 
    fwrite($file, $xml); 
    fclose($file); 
    echo($GLOBALS["HTTP_RAW_POST_DATA"]); 
} 
?> 

Hope this helps.

Các vấn đề liên quan