亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

php自定義類fsocket模擬post或get請求的方法

2024-05-04 23:38:30
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了php自定義類fsocket模擬post或get請求的方法,涉及php使用socket模擬post及get請求的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了php自定義類fsocket模擬post或get請求的方法。分享給大家供大家參考。具體如下:

zsocket.class.php文件如下:

 

  1. <?php 
  2. class ZSocket { 
  3. /* 
  4. * Init  
  5. */ 
  6. private function _fsockopen($host, $port, &$errno, &$errstr, $timeout){ 
  7. $ip = @gethostbyname($host); 
  8. $s = @socket_create(AF_INET, SOCK_STREAM, 0); 
  9. if(socket_set_nonblock($s)){ 
  10. $r = @socket_connect($s, $ip, $port); 
  11. if ($r || socket_last_error() == EINPROGRESS) { 
  12. $errno = EINPROGRESS; 
  13. return $s; 
  14. $errno = socket_last_error($s); 
  15. $errstr = socket_strerror($errno); 
  16. socket_close($s); 
  17. return false
  18. /* 
  19. * 設置Cookie 
  20. */ 
  21. private function _setCookie($cookie){ 
  22. $_cookies = explode("; ",$cookie); 
  23. $_tmp = explode("=",$_cookies[0]); 
  24. setcookie($_tmp[0], $_tmp[1]); 
  25. return $_cookies; 
  26. /* 
  27. * 獲取返回數據header內容 
  28. */ 
  29. private function _getDataHeader(&$fp,&$reHeader,&$cookies){ 
  30. $maxlen = 0; 
  31. while(!feof($fp)){ 
  32. $line = fgets($fp,1024); 
  33. if(substr($line, 0, 12) == 'Set-Cookie: '){ $cookies[] = $this->_setCookie(substr($line, 12)); } 
  34. $reHeader .= $line; 
  35. if(substr($line, 0, 16) == 'Content-Length: '){ 
  36. $maxlen = intval(substr($line, 16, -2));  
  37. if($line == "/r/n" || $line == ""break
  38. return $maxlen; 
  39. /* 
  40. * 獲取返回數據正文內容 
  41. */ 
  42. private function _getDataBody(&$fp,$maxlen){ 
  43. $reData = ""
  44. while(!feof($fp)){ 
  45. $line = fgets($fp,$maxlen+1); 
  46. $reData .= $line; 
  47. if(strlen($line) < $maxlen) $maxlen = $maxlen - strlen($line); 
  48. else break
  49. return $reData; 
  50. /* 
  51. * 設置并返回要發送的header內容 
  52. */ 
  53. public function get_HeaderInfo($host,$type='GET',$file='/',$params=array(),$head=array(),$cookies=array()){ 
  54. $_params = $_cookies = ''
  55. if(is_array($params)){ 
  56. foreach($params as $key=>$value){  
  57. $_params .= "&".$key."=".urlencode($value);  
  58. $_params = (strlen($_params) > 1) ? substr($_params,1) : ''
  59. }else if(is_string($params)){ 
  60. $_params = urlencode($params); 
  61. foreach($cookies as $key=>$value){ 
  62. $_cookies .= "; ".$key."=".urlencode($value);  
  63. $_cookies = (strlen($_cookies) > 2) ? substr($_cookies,2) : ''
  64. $file .= ($type == 'GET') ? ($_params == '' ? '' : '?'.$_params) : ''
  65. $header = $type." ".$file." HTTP/1.1/r/n"
  66. $header .= "Host: ".$host."/r/n"
  67. //$header .= "Referer: ".get_ip()."/r/n"; 
  68. //$header .= "X-Forwarded-For: ".get_ip()."/r/n"; 
  69. $header .= ($type == 'GET') ? '' : "Content-Type: application/x-www-form-urlencoded/r/n"
  70. if(is_array($head) && $head != array()){ 
  71. foreach($head as $k=>$v){ 
  72. $header .= $k.": ".$v."/r/n"
  73. $header .= "Content-Length: ".strlen($_params)."/r/n"
  74. if($_cookies != '') $header .= "Cookie: ".$_cookies."/r/n"
  75. /* 
  76. foreach($_SERVER as $name => $value){ 
  77. if(substr($name, 0, 5) == 'HTTP_' && $name != 'HTTP_HOST'){ 
  78. $header .= str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5))))).":".$value."/r/n"; 
  79. } 
  80. } 
  81. */ 
  82. $header .= "Connection: Close/r/n/r/n"
  83. $header .= $_params."/r/n"
  84. return $header; 
  85. /* 
  86. * 發送,并返回結果 Array 
  87. */ 
  88. public function get_SendData($host,$port=80,$header=''){ 
  89. if(function_exists('fsockopen')){ 
  90. $fp = fsockopen($host,$port,$errno,$errstr,10); 
  91. }else if(function_exists('pfsockopen')){ 
  92. $fp = pfsockopen($host,$port,$errno,$errstr,10); 
  93. }else if(function_exists('stream_socket_client')){ 
  94. $fp = stream_socket_client($host.':'.$port,$errno,$errstr,10); 
  95. }else
  96. $fp = $this->_fsockopen($host,$port,$errno,$errstr,10); 
  97. $fp = fsockopen($host,$port,$errno,$errstr,10); 
  98. if(!$fp) return array('header'=>'','data'=>$errstr."--->".$errno,'cookie'=>''); 
  99. $reHeader = $reData = ""
  100. $cookies = array(); 
  101. fputs($fp,$header); 
  102. $maxlen = $this->_getDataHeader($fp,$reHeader,$cookies); 
  103. $reData = $this->_getDataBody($fp,$maxlen); 
  104. fclose($fp); 
  105. return array('header'=>$reHeader,'data'=>$reData,'cookie'=>$cookies); 

demo代碼如下:

 

 
  1. $host = 'www.49028c.com'
  2. $port = '80'
  3. $type = 'POST'
  4. $file = '/'
  5. $params = ''
  6. //include_once('include/zsocket.class.php'); //include 
  7. $zsk = new ZSocket(); 
  8. $header = $zsk->get_HeaderInfo($host,$type,$file,$params); 
  9. $data = $zsk->get_SendData($host,$port,$header); 
  10. /* 
  11. echo "<!--/r/n"; 
  12. print_r($header); 
  13. print_r($data); 
  14. echo "-->/r/n"; 
  15. */ 
  16. var_dump($header); 
  17. var_dump($data); 

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区久久精品| 日韩成人在线网站| 国产成人精品电影久久久| 亚洲精品视频中文字幕| 欧美老女人性生活| 尤物tv国产一区| 欧美精品在线播放| 伊人久久精品视频| 亚洲a∨日韩av高清在线观看| 亚洲综合日韩中文字幕v在线| 国产一区二区三区毛片| 国外色69视频在线观看| 亚洲成人xxx| 亚洲一级免费视频| 久久精品国产久精国产一老狼| 91视频国产一区| 在线观看视频亚洲| 日韩精品极品在线观看播放免费视频| 国产aⅴ夜夜欢一区二区三区| 综合网日日天干夜夜久久| 九九热r在线视频精品| 亚洲国产精品电影| 午夜精品在线观看| 欧美在线视频免费观看| 久久男人av资源网站| 国产精品视频yy9099| 国产91精品黑色丝袜高跟鞋| 日本精品在线视频| 欧美大片在线影院| 亚洲免费人成在线视频观看| 日韩有码在线观看| 亚洲最大福利视频网站| 色系列之999| 亚洲精品久久久久| 欧美性xxxx极品hd欧美风情| 国产精品成人aaaaa网站| 日韩美女主播视频| 欧美中文字幕在线视频| 欧洲s码亚洲m码精品一区| 国产成人福利视频| 中文字幕亚洲情99在线| 欧美超级乱淫片喷水| 欧美在线视频播放| zzijzzij亚洲日本成熟少妇| 亚洲免费中文字幕| 欧美大全免费观看电视剧大泉洋| 91久久精品美女高潮| 日韩暖暖在线视频| 国产福利精品在线| 中文在线不卡视频| 国产视频自拍一区| 欧美国产日韩一区二区在线观看| 亚洲国产成人久久| 国产成人jvid在线播放| 亚洲欧美中文日韩在线v日本| 欧美电影在线免费观看网站| 亚洲www视频| 午夜精品福利电影| 在线视频中文亚洲| 2019亚洲男人天堂| 国产午夜精品免费一区二区三区| 久久91精品国产91久久久| 青青草成人在线| 91干在线观看| 久久影院中文字幕| 久久久久久久久久久久久久久久久久av| 91精品视频在线看| 亚洲深夜福利网站| 欧美最猛性xxxx| 91在线中文字幕| 91精品国产91久久久久久不卡| 日韩国产欧美精品在线| 国产偷亚洲偷欧美偷精品| 久久国产精品久久久久久| 久久精品国产免费观看| 国产精品视频yy9099| 国产精品美女www爽爽爽视频| 亚洲国产成人久久综合| 亚洲精品乱码久久久久久金桔影视| 久久久久久久久爱| 97碰在线观看| 日韩一中文字幕| 国产亚洲视频在线| 96精品视频在线| 国产亚洲欧美一区| 日韩欧美国产网站| 亚洲自拍偷拍色图| 成人午夜在线观看| 97视频网站入口| 国产精品久久网| 欧美最顶级丰满的aⅴ艳星| 亚洲精品中文字幕有码专区| 国产中文日韩欧美| 成人免费大片黄在线播放| 亚洲毛片在线免费观看| 最新国产成人av网站网址麻豆| 日韩欧美一区二区三区久久| www.欧美精品一二三区| 欧美精品福利视频| 欧美国产日韩精品| 国内精品久久久久久久| 色综合色综合网色综合| 在线视频免费一区二区| 欧美成人免费在线视频| 中文字幕日韩有码| 亚洲美女中文字幕| 国产欧美va欧美va香蕉在| 久久精品久久精品亚洲人| 日韩福利视频在线观看| 成人午夜一级二级三级| 亚洲第一二三四五区| 成人乱色短篇合集| 国产综合色香蕉精品| 日韩高清免费观看| 成人性生交xxxxx网站| 日本精品在线视频| 成人精品在线观看| 欧美精品激情在线观看| 中文字幕欧美精品日韩中文字幕| 国内精品中文字幕| 国产亚洲欧洲高清一区| 日韩激情av在线免费观看| 性金发美女69hd大尺寸| 亚洲男人第一网站| 久久久久国产视频| 欧美精品久久一区二区| 91国内产香蕉| 91欧美视频网站| 91精品久久久久久久久久久| 欧美性在线视频| 亚洲www永久成人夜色| 一二美女精品欧洲| 亚洲成人教育av| 欧美极品在线播放| 91精品国产高清久久久久久久久| 狠狠躁夜夜躁久久躁别揉| 欧美激情精品久久久久久久变态| 欧美日韩在线另类| 精品国产福利在线| 久久6免费高清热精品| 国产精品视频在线播放| 91亚洲精品在线观看| 日韩欧美主播在线| 精品亚洲一区二区| 国产成人高潮免费观看精品| 久久99国产综合精品女同| 日韩视频免费观看| 久久人人爽人人| 欧美日韩色婷婷| 成人激情视频小说免费下载| 国产精品久久久久久久久久久不卡| 91在线视频成人| 欧美成人一区二区三区电影| 亚洲国产精品久久久久久| 亚洲精美色品网站| 欧美性开放视频| 97超级碰碰碰| 色青青草原桃花久久综合| 激情亚洲一区二区三区四区| 欧美二区乱c黑人| 亚洲精品免费一区二区三区| 国产精品久久77777| 亚洲国产欧美一区二区三区久久| www.久久久久久.com|