2017-05-03 101 views
1

我有兩個腳本:如何從php://輸入數據獲取數據?

首派:

$url = "http://localhost/curl2.php"; 
$data = array('email' => '[email protected]'); 
$addr = $url . '?' . http_build_query($data); 
$ch = curl_init($addr); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); 
curl_exec($ch); 

,二來得到:

if($_SERVER['REQUEST_METHOD'] == "PUT") { 

    $data = array(); 
    $incoming = file_get_contents("php://input"); 
    parse_str($incoming, $data); 
    echo "Address: " . filter_var($data["email"], FILTER_VALIDATE_EMAIL); 
} 

但變量$傳入的是空的。我該怎麼做?也許它與PUT有關,但我必須使用PUT。

+0

可能是顯而易見的,但$傳入是空的嗎? –

+0

是的,我的錯誤。 $傳入也是空的。 – hocik

+0

使用'CURLOPT_POSTFIELDS'而不是將您的字段附加到URI(使它們成爲GET參數)。 – ccKep

回答

1

PUT不是GET。使用不帶查詢字符串的URL並將數據添加到CURLOPT_POSTFIELDS

$url = "http://localhost/curl2.php"; 
$data = array('email' => '[email protected]'); 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); 
curl_exec($ch);