我有2个PHP文件,每个文件在分开的服务器中。
例如:
第一个文件代码(index.php):
echo $_POST['file_name'];
第二个文件代码(request.php):
$data = array(
'file_name' => "file.zip",
'file_size' => 5000
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://mainServer/default/index.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
curl_close($ch);
我想要的是将$data
数组从externalServer/request.php
发送到mainServer/default/index.php
,但有一个错误Notice: Undefined index: file_name in default\index.php on line 13
。
如何获取$data
数组以打印项目?
答案 0 :(得分:0)
我在你的代码中发现了错误。直接发送关联数组(你做了什么)不是正确的方法。您需要将数组作为字符串发送。
示例强>
This->
$data = array(
'file_name' => "file.zip",
'file_size' => 5000
);
应该是这个 - >
$data = "file_name=file.zip&file_zipe=500"
现在,当您发送数据时,您可以通过$_POST
获取数据。您可以让php使用array to string conversion
执行http_build_query
。
$data = array(
'file_name' => "file.zip",
'file_size' => 5000
);
$string = http_build_query($data);
//output = file_name=file.zip&file_size=5000
详细了解http_build_query
Here