php中用來可以做非同步呼叫的程式碼

choubou發表於2021-09-09


        static public function getAsn($url,$errno='',$errstr='',$time_out = 5) {        //移除url中的空格,如果可以格式化url,或許會更好        $url str_replace(' '''$url);             $arr parse_url($url);        $arr['port'] || $arr['port'] = 80;        $fp fsockopen($arr['host'],$arr['port'],$errno,$errstr,$time_out);        if(!$fp) {            return $errno." ".$errstr;        }                 $arr['query'] && $arr['query'] = '?'.$arr['query'];        $out "GET ".$arr['path'].$arr['query']." HTTP/1.1rn";        $out .= "Host: ".$arr['host']."rn";        $out .= "Connection: Closernrn";        fwrite($fp,$out);        fclose($fp);    }        static     function postAsn($url,$post_arr,$errno '',$errstr='',$time_out = 5) {        $arr parse_url($url);        $arr['port'] || $arr['port'] = 80;         $fp fsockopen($arr['host'],$arr['port'],$errno,$errstr,$time_out);        if(!$fp) {            return $errno." ".$errstr;        }        $post_data "";        if($post_arr){            //在這裡還可以使用 http_build_query() 函式,將post的內容編碼            foreach ($post_arr as $key => $val){                $post_data .= urlencode($key) ."=". urlencode($val)."&";            }            $post_data substr($post_data, 0,-1);        }        $data_len strlen($post_data);          $arr['query'] && $arr['query'] = '?'.$arr['query'];        $out "POST ".$arr['path'].$arr['query']." HTTP/1.1rn";        $out .= "Host: ".$arr['host']."rn";        $out .= "Content-type:application/x-www-form-urlencodedrn";          $out .= "Connection: Closern";        $out .= "Content-Length:$data_lenrnrn"        $out .= $post_data."rn";        fwrite($fp,$out);        fclose($fp);    }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4548/viewspace-2810890/,如需轉載,請註明出處,否則將追究法律責任。

相關文章