www.adminn.cn
站长正能量分享网!

php自动提交表单的方法(基于fsockopen与curl)

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

这篇文章主要介绍了php自动提交表单的方法,结合实例形式分析了php基于fsockopen与curl两种实现技巧,需要的朋友可以参考下。

本文实例讲述了php基于fsockopen与curl实现自动提交表单的方法,分享给大家供大家参考,具体如下:

fsockopen和curl都可以做php自动提交表单

1. fsockopen方法:

php代码:

  1. <?php 
  2. /*———————————————————– 
  3. *功能:使用PHP socke 向指定页面提交数据 
  4. *作者:果冻  说明:post($url, $data) 
  5. * 
  6. *    $url   = 'http://www.xxx.com:8080/login.php'; 
  7. *    $data[user] = 'hong'; 
  8. *    $data[pass] = 'xowldo'; 
  9. *    echo post($url, $data); 
  10. *———————————————————–*/ 
  11. function post($url$data) { 
  12.   $url = parse_url($url); 
  13.    if (!$urlreturn "couldn't parse url"
  14.    if (!isset($url['port'])) { $url['port'] = ""; } 
  15.    if (!isset($url['query'])) { $url['query'] = ""; } 
  16.   $encoded = ""
  17.    while (list($k,$v) = each($data)) { 
  18.     $encoded .= ($encoded ? "&" : ""); 
  19.     $encoded .= rawurlencode($k)."=".rawurlencode($v); 
  20.    } 
  21.   $fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80); 
  22.    if (!$fpreturn "Failed to open socket to $url[host]"
  23.   fputs($fp, sprintf("POST %s%s%s HTTP/1.0n"$url['path'], $url['query'] ? "?" : ""$url['query'])); 
  24.   fputs($fp"Host: $url[host]n"); 
  25.   fputs($fp"Content-type: application/x-www-form-urlencodedn"); 
  26.   fputs($fp"Content-length: " . strlen($encoded) . "n"); 
  27.   fputs($fp"Connection: closenn"); 
  28.   fputs($fp"$encodedn"); 
  29.   $line = fgets($fp,1024); 
  30.    if (!eregi("^HTTP/1.. 200"$line)) return
  31.   $results = ""$inheader = 1; 
  32.    while(!feof($fp)) { 
  33.     $line = fgets($fp,1024); 
  34.      if ($inheader && ($line == "n" || $line == "rn")) { 
  35.     $inheader = 0; 
  36.    } 
  37.    elseif (!$inheader) { 
  38.     $results .= $line
  39.    } 
  40.    } 
  41.   fclose($fp); 
  42.    return $results
  43. /* 
  44. $url = 'http://video.xxx.com:80/game_vm.php'; 
  45. $data['gid'] = '1'; 
  46. echo post($url, $data); 
  47. */ 
  48. ?> 

2. Curl方法:

php代码:

  1. <?php 
  2.   $url = 'http://localhost/curl/result.php'
  3.   $params = "param=123&param2=333"//What will be posted 
  4.   $user_agent = "Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)"
  5.   $ch = curl_init(); 
  6.   curl_setopt($ch, CURLOPT_POST,1); 
  7.   curl_setopt($ch, CURLOPT_POSTFIELDS,$params); 
  8.   curl_setopt($ch, CURLOPT_URL,$url); 
  9.   curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); 
  10.   curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
  11.   $result=curl_exec ($ch); //execut 
  12.   curl_close ($ch); 
  13.   echo "Results: <br>".$result
  14. ?> 

result.php (just for test)

  1. <?php 
  2. print_r($_POST); 
  3. ?>

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php自动提交表单的方法(基于fsockopen与curl)》
文章链接:https://www.adminn.cn/news/34666.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

本站源码仅供本地环境下学习借鉴研究使用!

源码请勿用于任何涉灰站点!净化网络,站长更有责!

支付宝扫一扫打赏