当前位置:首页 > PHP教程 > php应用 > 列表

php中模拟POST提交数据的方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-31 14:04:16 浏览: 评论:0 

php中模拟POST提交数据的方法,有需要的朋友可参考一下.

1.通过curl函数,代码如下:

  1. $post_data = array(); 
  2. $post_data['clientname'] = "test08"
  3. $post_data['clientpasswd'] = "test08"
  4. $post_data['submit'] = "submit"
  5. $url='http://xxx.xxx.xxx.xx/xx/xxx/top.php'
  6. $o=""
  7. foreach ($post_data as $k=>$v
  8.     $o.= "$k=".urlencode($v)."&"
  9. $post_data=substr($o,0,-1); 
  10. $ch = curl_init(); 
  11. curl_setopt($ch, CURLOPT_POST, 1); 
  12. curl_setopt($ch, CURLOPT_HEADER, 0); 
  13. curl_setopt($ch, CURLOPT_URL,$url); 
  14. //为了支持cookie 
  15. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
  16. curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); 
  17. $result = curl_exec($ch); 

2.通过fsockopen,代码如下:

  1. $URL=‘http://xxx.xxx.xxx.xx/xx/xxx/top.php'; 
  2. $post_data['clientname'] = "test08"
  3. $post_data['clientpasswd'] = "test08"
  4. $post_data['submit'] = "ログイン"
  5. $referrer=""
  6. // parsing the given URL 
  7. $URL_Info=parse_url($URL); 
  8. // Building referrer 
  9. if($referrer==""// if not given use this script as referrer 
  10. $referrer=$_SERVER["SCRIPT_URI"]; 
  11.  
  12. // making string from $data 
  13. foreach($post_data as $key=>$value
  14. $values[]="$key=".urlencode($value); 
  15.  
  16. $data_string=implode("&",$values); 
  17. // Find out which port is needed - if not given use standard (=80) 
  18. if(!isset($URL_Info["port"])) 
  19. $URL_Info["port"]=80; 
  20. // building POST-request: 
  21. $request.="POST ".$URL_Info["path"]." HTTP/1.1n"
  22. $request.="Host: ".$URL_Info["host"]."n"
  23. $request.="Referer: $referrern"
  24. $request.="Content-type: application/x-www-form-urlencodedn"
  25. $request.="Content-length: ".strlen($data_string)."n"
  26. $request.="Connection: closen"
  27. $request.="n"
  28. $request.=$data_string."n"
  29. $fp = fsockopen($URL_Info["host"],$URL_Info["port"]); 
  30. fputs($fp$request); 
  31. while(!feof($fp)) { 
  32.     $result .= fgets($fp, 128); 
  33. fclose($fp);  

其它的第三方插件

Snoopy 类(2)

sourceforge.net/projects/snoopy/

http://www.redalt.com/xref/trunk/nav.htm?wp-includes/class-snoopy.php.htm

HTTP类(1,2)

http://www.phpclasses.org/browse/download/1/file/5/name/http.php

PEAR HTTP_Request

http://pear.php.net/package/HTTP_Request

Popularity: 74%

curl参考

PHP中的CURL函数库(Client URL Library Function)

curl_close — 关闭一个curl会话

curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数

curl_errno — 返回一个包含当前会话错误信息的数字编号

curl_error — 返回一个包含当前会话错误信息的字符串

curl_exec — 执行一个curl会话

curl_getinfo — 获取一个curl连接资源句柄的信息

curl_init — 初始化一个curl会话

curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源

curl_multi_close — 关闭一个批处理句柄资源

curl_multi_exec — 解析一个curl批处理句柄

curl_multi_getcontent — 返回获取的输出的文本流

curl_multi_info_read — 获取当前解析的curl的相关传输信息

curl_multi_init — 初始化一个curl批处理句柄资源

curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源

curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"

curl_setopt_array — 以数组的形式为一个curl设置会话参数

curl_setopt — 为一个curl设置会话参数

curl_version — 获取curl相关的版本信息

curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址.

curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄.

curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄.

Tags: php模拟 POST提交数据

分享到: