2017-05-03 97 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);