This article mainly introduces the HTTP request class of PHP, which has certain reference value. Now I share it with everyone. Friends in need can refer to it
<?php namespace app\lib; class Lib_http{ //发起网络请求 public function call($url, $args = null, $method = "post", $testflag = 0, $timeout = 60, $headers = array()) {/*{{{*/ Lib_log::set_log('http',$url); $ret = false; $i = 0; while ($ret === false) { if ($i > 1) break; if ($i > 0) { sleep(1); } $ret = $this->callOnce($url, $args, $method, false, $timeout, $headers); $i++; } return $ret; }/*}}}*/ private function callOnce($url, $args = null, $method = "post", $withCookie = false, $timeout = CURL_TIMEOUT, $headers = array()) {/*{{{*/ $ch = curl_init(); if ($method == "post") { $data =$this->convert($args); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_POST, 1); } else { $data =$this->convert($args); if ($data) { if (stripos($url, "?") > 0) { $url .= "&$data"; } else { $url .= "?$data"; } } } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // curl_setopt($ch, CURLOPT_HEADER, true); if (!empty($headers)) { curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } if ($withCookie) { curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE); } $r = curl_exec($ch); curl_close($ch); return $r; }/*}}}*/ private function convert(&$args) {/*{{{*/ $data = ''; if (is_array($args)) { foreach ($args as $key => $val) { if (is_array($val)) { foreach ($val as $k => $v) { $data .= $key . '[' . $k . ']=' . rawurlencode($v) . '&'; } } else { $data .= "$key=" . rawurlencode($val) . "&"; } } return trim($data, "&"); } return $args; }/*}}}*/}
Related recommendations:
php http protocol post request parameter summary related information
The above is the detailed content of php http request class. For more information, please follow other related articles on the PHP Chinese website!