PHP模拟请求提交数据有 file_get_contents
、curl
和 socket
,它们都可以通过模拟表单提交,实现数据传输。
1、file_get_contents模拟POST提交:
$arr=array('http'=>array('method'=>'POST', 'content'=>'name=wang&pwd=123'));
$result = file_get_contents("要请求的地址", false, stream_context_create($arr));
2、curl模拟POST提交:
$arr = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => array(‘name’=>’wang’,’pwd’=>’123′)
);
$ch = curl_init($url);
curl_setopt_array($ch, $arr);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
3、socket来模拟POST提交:
$url = "www.wangzhiguang.com.cn";
$host = 80;
$content = "name=wang&pwd=123";
$fp = fsockopen($content, $host, $errno, $errstr);
$length = strlen($content);
$header = <<<HEADER
POST {$url} HTTP/1.1
Host: {$host}
Content-Type: application/x-www-form-urlencoded
Content-Length: {$length}
Connection: close
{$content}
HEADER;
fwrite($fp, $header);
while (!feof($fp)) {
$result .= fread($fp, 512);
}
$result = explode("\r\n\r\n", $result, 2);
connection: close和post数据之间要空一行
最好通过返回值$result你就可以看到发送状态了。
文档更新时间: 2021-09-29 14:52 作者:admin