php curl輸出不完整的解決方法:1、開啟對應的PHP程式碼檔案;2、增加配置為「curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));」;3、封裝方法為「function req_curl($url, &$status = null, $options = array()){...}」即可。
本教學操作環境:windows7系統、PHP8.1版、Dell G3電腦。
php curl 輸出不完整? php獲取資料 curl獲取不完整?
因為,PHP CURL庫預設1024位元組的長度不等待資料的返回,所以你那段程式碼需增加一項配置:
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
給你一個更全面的封裝方法:
function req_curl($url, &$status = null, $options = array()) { $res = ''; $options = array_merge(array( 'follow_local' => true, 'timeout' => 30, 'max_redirects' => 4, 'binary_transfer' => false, 'include_header' => false, 'no_body' => false, 'cookie_location' => dirname(__FILE__) . '/cookie', 'useragent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1', 'post' => array() , 'referer' => null, 'ssl_verifypeer' => 0, 'ssl_verifyhost' => 0, 'headers' => array( 'Expect:' ) , 'auth_name' => '', 'auth_pass' => '', 'session' => false ) , $options); $options['url'] = $url; $s = curl_init(); if (!$s) return false; curl_setopt($s, CURLOPT_URL, $options['url']); curl_setopt($s, CURLOPT_HTTPHEADER, $options['headers']); curl_setopt($s, CURLOPT_SSL_VERIFYPEER, $options['ssl_verifypeer']); curl_setopt($s, CURLOPT_SSL_VERIFYHOST, $options['ssl_verifyhost']); curl_setopt($s, CURLOPT_TIMEOUT, $options['timeout']); curl_setopt($s, CURLOPT_MAXREDIRS, $options['max_redirects']); curl_setopt($s, CURLOPT_RETURNTRANSFER, true); curl_setopt($s, CURLOPT_FOLLOWLOCATION, $options['follow_local']); curl_setopt($s, CURLOPT_COOKIEJAR, $options['cookie_location']); curl_setopt($s, CURLOPT_COOKIEFILE, $options['cookie_location']); if (!empty($options['auth_name']) && is_string($options['auth_name'])) { curl_setopt($s, CURLOPT_USERPWD, $options['auth_name'] . ':' . $options['auth_pass']); } if (!empty($options['post'])) { curl_setopt($s, CURLOPT_POST, true); curl_setopt($s, CURLOPT_POSTFIELDS, $options['post']); //curl_setopt($s, CURLOPT_POSTFIELDS, array('username' => 'aeon', 'password' => '111111')); } if ($options['include_header']) { curl_setopt($s, CURLOPT_HEADER, true); } if ($options['no_body']) { curl_setopt($s, CURLOPT_NOBODY, true); } if ($options['session']) { curl_setopt($s, CURLOPT_COOKIESESSION, true); curl_setopt($s, CURLOPT_COOKIE, $options['session']); } curl_setopt($s, CURLOPT_USERAGENT, $options['useragent']); curl_setopt($s, CURLOPT_REFERER, $options['referer']); $res = curl_exec($s); $status = curl_getinfo($s, CURLINFO_HTTP_CODE); curl_close($s); return $res; }
推薦學習:《PHP影片教學》
以上是php curl 輸出不完整怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!