1、file_get_contents
1.定義
file_get_contents() 函數將指定 URL 的文件讀入一個字符串並返回。php
2.語法
file_get_contents(path, include_path, context, start, max_length)
- path:要讀取的路徑或連接。
- include_path:是否在路徑中搜索文件,搜索則設爲 1,默認爲 false。
- context:修改流的行爲,如超時時間,GET / POST 等。
- start:開始讀文件的位置。
- max_length:讀取文件的字節數。
3.示例
test.txt瀏覽器
<?php echo "i'm a test php"; ?>
index.php緩存
<?php $testTxt = file_get_contents('./test.txt'); var_dump($testTxt); // string(15) "i'm a test txt." $ctx = stream_context_create( array( 'http' => array( 'method' => 'get', 'timeout' => 30 ) ) ); $testTxt = file_get_contents('./test.txt', false, $ctx, 4, 6); var_dump($testTxt); // string(6) "a test" ?>
2、curl
1.定義
PHP 支持 Daniel Stenberg 建立的 libcurl 庫,可以鏈接通信各類服務器、使用各類協議。libcurl 目前支持的協議有 http、https、ftp、gopher、telnet、dict、file、ldap。 libcurl 同時支持 HTTPS 證書、HTTP POST、HTTP PUT、 FTP 上傳(也能經過 PHP 的 FTP 擴展完成)、HTTP 基於表單的上傳、代理、cookies、用戶名+密碼的認證。服務器
2.語法
- curl_init:初始化 cURL 會話。
- curl_setopt:設置 cURL 傳輸選項。
- curl_exec:返回 true / false,curl_setopt 設置 CURLOPT_RETURNTRANSFER 爲 TRUE 時將 curl_exec() 獲取的信息以字符串返回。
- curl_close:關閉 cURL 會話。
3.示例
test.phpcookie
<?php echo "i'm a test php"; ?>
index.phpcurl
<?php // 建立一個新 cURL 資源 $ch = curl_init(); // 設置URL和相應的選項 curl_setopt($ch, CURLOPT_URL, "http://localhost/test.php"); // 須要獲取的 URL 地址,也能夠在 curl_init() 初始化會話的時候。 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($ch, CURLOPT_HEADER, false); // 啓用時會將頭文件的信息做爲數據流輸出。 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); // 在嘗試鏈接時等待的秒數。設置爲 0,則無限等待。 curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 容許 cURL 函數執行的最長秒數。 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // TRUE 將 curl_exec() 獲取的信息以字符串返回,而不是直接輸出。 // 抓取 URL 並把它傳遞給瀏覽器 $ret = curl_exec($ch); var_dump($ret); // 關閉 cURL 資源,而且釋放系統資源 curl_close($ch); ?>
3、file_get_contents 和 curl 區別
1.curl 支持更多功能
curl 支持更多協議,有http、https、ftp、gopher、telnet、dict、file、ldap;模擬 Cookie 登陸,爬取網頁;FTP 上傳下載。函數
fopen / file_get_contents 只能使用 GET 方式獲取數據。性能
2.性能
curl 能夠進行 DNS 緩存,同一個域名下的圖片或其它資源只須要進行一次DNS查詢。url
curl 相對來講更加快速穩定,訪問量高的時候首選 curl,缺點就是相對於 file_get_contents 配置繁瑣一點,file_get_contents 適用與處理小訪問的應用。spa