php socket模擬表單傳送請求

2022-03-16 07:28:41 字數 4390 閱讀 6271

1

<?php 2/*

* 3* http請求類(php + socket)

4* @todo 這裡還有很多未完善的地方,僅有簡單的get post head請求

28* 傳送http get請求

29* @access public

30* @param string $url 請求的url

31*/

32public

function get($url = '')

3940

/**

41* 傳送http post請求

42* @access public

43*/

44public

function

post()

4950

/**

51* http -> head 方法,取得伺服器響應乙個 http 請求所傳送的所有標頭

52* @access public

53* @param string $url 請求的url

54* @param int $fmt 資料返回形式,關聯陣列與普通陣列

55* @return array 返回響應頭資訊

56*/

57public

function head($url = '', $fmt = 0)

62return

$headers

; 63

} 64

65/*

* 66

* 設定要請求的 url

67* @todo 這裡未做url驗證

68* @access public

69* @param string $url request url

70* @return bool

71*/

72public

function seturl($url = '')

78 } else

81} 82

83/*

* 84

* 設定http協議的版本

85* @access public

86* @param string $version http版本,default value = 1.1

87* @return bool 如果不在範圍內返回false

88*/

89public

function setversion($version = "1.1") else

95} 96

97/*

* 98

* 設定http請求行

99* @access public

100* @param string $method 請求方式 default value = get

101*/

102private

function setline($method = "get") else

109} 110

111/*

* 112

* 設定http請求頭資訊

113* @access public

114* @param array $header 請求頭資訊

115*/

116public

function setheader($header = null

)

122}

123}

124125

/**

126* http請求主體

127* @access public

128* @param array $body 請求主體

129*/

130public

function setbody($body = null

)

135}

136}

137138

/**

139* 單條設定http請求主體

140* @access public

141* @param string $key 請求主體的鍵

142* @param string $value 請求主體的值

143*/

144public

function setbodykeyvalue($key, $value

)

148}

149150

/**

151* 單條設定http請求頭資訊

152* @access public

153* @param string $key 請求頭資訊的鍵

154* @param string $value 請求頭資訊的鍵

155*/

156public

function setheaderkeyvalue($key, $value

)

160}

161162

/**

163* socket連線host, 傳送請求

164* @access private

165*/

166private

function

request() else

176$req = implode(self::crlf, $req

);

177178

//socket連線host

179$this->fh = fsockopen($this->url['host'], $this->url['port'], $this->errno, $this->errstr, $this->timeout);

180181

if (!$this->fh)

185186

//寫請求

187fwrite($this->fh, $req

);

188189

//讀響應

190while (!feof($this->fh))

193}

194195

/**

196* 關閉socket連線

PHP SOCKET方式傳送郵件

1.php中傳送郵件的方式 php傳送郵件是非常簡單的,因為它提供了mail 函式直接傳送,但這也繼承register globals成為了對初學者的第二大殺手。通過mail 函式傳送郵件需要配置php.ini郵件資訊和需要類似sendmail這樣的組建支援。通過socket通訊,使用smtp傳輸。...

php socket 模擬http請求

fsockopen 開啟乙個網路連線或者乙個unix套接字連線 注意這裡只能是 網域名稱 或 ip flag 0 params errno errstr 要post的資料 ar a aa b bb 構造要post的字串 foreach ar as key value params.key.param...

php socket資料傳送接收MSG常量

常量 數值說明 socket recv socket send msg oob 1處理超出邊界的資料。msg peek 2從接受佇列的起始位置接收資料,但不將他們從接受佇列中移除。msg waitall 8在接收到至少 len 位元組的資料之前,造成乙個阻塞,並暫停指令碼執行 block 但是,如果...