基于PHP的cURL快速入門1
curl 是一個利用url語法規(guī)定來傳輸文件和數(shù)據的工具,支持很多協(xié)議,如http、ftp、telnet等。最爽的是,php也支持 curl 庫。本文將介紹 curl 的一些高級特性,以及在php中如何運用它。
為什么要用 curl?
是的,我們可以通過其他辦法獲取網頁內容。大多數(shù)時候,我因為想偷懶,都直接用簡單的php函數(shù):
以下為引用的內容:
$content = file_get_contents("http://www.nettuts.com");// or$lines = file("http://www.nettuts.com");// orreadfile(http://www.nettuts.com);
// 1. 初始化$ch = curl_init();// 2. 設置選項,包括URLcurl_setopt($ch, CURLOPT_URL, "http://www.nettuts.com");curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);// 3. 執(zhí)行并獲取HTML文檔內容$output = curl_exec($ch);// 4. 釋放curl句柄curl_close($ch);
// ...$output = curl_exec($ch);if ($output === FALSE) {echo "cURL Error: " . curl_error($ch);}// ...
?
獲取信息
這是另一個可選的設置項,能夠在cURL執(zhí)行后獲取這一請求的有關信息:
以下為引用的內容:
// ...curl_exec($ch);$info = curl_getinfo($ch);echo '獲取'. $info['url'] . '耗時'. $info['total_time'] . '秒';// ...
// 測試用的URL$urls = array("http://www.cnn.com","http://www.mozilla.com","http://www.facebook.com");// 測試用的瀏覽器信息$browsers = array("standard" => array ("user_agent" => "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)","language" => "en-us,en;q=0.5"),"iphone" => array ("user_agent" => "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A537a Safari/419.3","language" => "en"),"french" => array ("user_agent" => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; GTB6; .NET CLR 2.0.50727)","language" => "fr,fr-FR;q=0.5"));foreach ($urls as $url) {echo "URL: $url\n";foreach ($browsers as $test_name => $browser) {$ch = curl_init();// 設置 urlcurl_setopt($ch, CURLOPT_URL, $url);// 設置瀏覽器的特定headercurl_setopt($ch, CURLOPT_HTTPHEADER, array("User-Agent: {$browser['user_agent']}","Accept-Language: {$browser['language']}"));// 頁面內容我們并不需要curl_setopt($ch, CURLOPT_NOBODY, 1);// 只需返回HTTP headercurl_setopt($ch, CURLOPT_HEADER, 1);// 返回結果,而不是輸出它curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($ch);curl_close($ch);// 有重定向的HTTP頭信息嗎?if (preg_match("!Location: (.*)!", $output, $matches)) {echo "$test_name: redirects to $matches[1]\n";} else {echo "$test_name: no redirection\n";}}echo "\n\n";}
PHP怎么學習?PHP怎么入門?PHP在哪學?PHP怎么學才快?不用擔心,這里為大家提供了PHP速學教程(入門到精通),有需要的小伙伴保存下載就能學習啦!
Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號