【发布时间】:2011-04-22 07:56:42
【问题描述】:
我正在尝试使用这个不错的功能:
function do_post_request($url, $data, $optional_headers = null) {
$params = array('http' => array(
'method' => 'POST',
'content' => $data
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}
要将 POST 命令发送到特定的 url,我的问题是我试图以数组的形式发送 post 参数,类似于这样
login[username]: myusername
login[password]: mypassword,
但是我不能这样做,调用函数:
$login_post = array('login[username]' => $email,
'login[password]' => '');
do_post_request(getHost($website['code']), $login_post);
始终以以下形式将数据发送到帖子:
username: myusername
password: mypassword
如何避免这种情况(不使用 curl)?非常感谢。
谢谢
是啊
【问题讨论】:
-
当您尝试以这种方式发送数据时会发生什么?
var_dump[$_POST]在接收方显示什么? -
Zend 框架正在处理这个特定 url 上的 POST,并期望以 login[username]、login[password] 形式的数据,我正在尝试模拟
-
啊。如果 ZF 使用这种方法,那么它一定是有可能做到的。删除了我的答案,否则
-
我可以得到用户名:myusername,密码:mypassword,好像$data中的数组被扁平化了
-
我明白了。我认为您必须传输一个真正的关联数组
array("username" => $email, "password" => "")但如何在 curl 中执行此操作,我不知道
标签: php