Source-php-request-2

來源:互聯網
上載者:User

標籤:param   i++   .com   hid   start   article   目的   curl   default   

php比較坑的地方就是實現相同的目的,能夠使用超級多種手段。比方(file_get_contents和fopen以及如今提到的curl以及fsockopen當然還有socket)這對於一個經驗少的程式猿來說,確實比較難選。、

所以非常多情況下,我們須要比較。

搜尋一下網上不負責任的資源。做一個預測。然後親自比較權衡一下。

以下是摘抄的:

function curlRequest($url, $isPost = false, $param = array(), $cookie = null, $header = null, $referer = "", $timeout = 60) {        $ch = curl_init();        curl_setopt($ch, CURLOPT_URL, $url);        if (is_array($header) && !empty($header)) { //設定header            $set_head = array();            foreach ($header as $k => $v) {                $set_head[] = "$k:$v";            }            curl_setopt($ch, CURLOPT_HTTPHEADER, $set_head);        } else {            curl_setopt($ch, CURLOPT_HEADER, 0);        }        if ($isPost === true) {            curl_setopt($ch, CURLOPT_POST, $isPost);            curl_setopt($ch, CURLOPT_POSTFIELDS, $param);        }        if (!empty($cookie)) {            if (is_array($cookie)) {                $cookies = implode(‘;‘, $cookie);            } else {                $cookies = $cookie;            }            curl_setopt($ch, CURLOPT_COOKIE, $cookies);        }        if (!empty($referer)) {            curl_setopt($ch, CURLOPT_REFERER, $referer);        }        if( $timeout > 0 ) {            curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);        }        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        $ret = curl_exec($ch);        if (curl_errno($ch)) {            $ret = ‘‘;        }        curl_close($ch);        return $ret;    }

以下主要是介紹要求標頭的一些資訊

<?phperror_reporting(E_ALL ^ E_NOTICE); ini_set(‘display_errors‘, true);//解釋怎樣使用HTTPHEADER。傳送json格式資料$id = $_POST[‘id‘];$symbol = $_POST[‘symbol‘];$companyName = $_POST[‘companyName‘];$data = array("id" => "$id", "symbol" => "$symbol", "companyName" => "$companyName");$data_string = json_encode($data);curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);curl_setopt($ch, CURLOPT_HTTPHEADER, array(    ‘Content-Type: application/json‘,    ‘Content-Length: ‘ . strlen($data_string)));?

>

一般的過程。我們不會用到那麼複雜:

<?php    $startTime = microtime(true);    $url = "http://api.k780.com:88/?

app=weather.today&weaid=1&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml"; for($i = 0 ; $i < 2; $i++){ $handle = curl_init($url); //$defaultHeader = array(‘Accept-encoding: gzip, default‘); curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1); //curl_setopt($handle, CURLOPT_HTTPHEADER, $defaultHeader); curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($handle, CURLOPT_TIMEOUT, 10); $xml = curl_exec($handle); if($i % 10 == 0){ echo "."; } curl_close($handle); } $endTime = microtime(true); $total = $endTime - $startTime; echo $total; echo curl_error($handle);?

>

須要說明的是:curl在控制台是不能執行的,比方php xxx.php params_1,它須要server。

Source-php-request-2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.