fopen實現代碼:
fopen() 函數開啟檔案或者 URL。
如果開啟失敗,本函數返回 FALSE。
代碼如下:
<?php教程
$handle = fopen ("http://www.example.com/", "rb");
$contents = "";
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>
代碼如下:
<?php
// 對 PHP 5 及更高版本
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>
參數 |
描述 |
filename |
必需。規定要開啟的檔案或 URL。 |
mode |
必需。規定要求到該檔案/流的訪問類型。可能的值見下表。 |
include_path |
可選。如果也需要在 include_path 中檢索檔案的話,可以將該參數設為 1 或 TRUE。 |
context |
可選。規定檔案控制代碼的環境。Context 是可以修改流的行為的一套選項。 |
mode 參數的可能的值
mode |
說明 |
"r" |
唯讀方式開啟,將檔案指標指向檔案頭。 |
"r+" |
讀寫方式開啟,將檔案指標指向檔案頭。 |
"w" |
寫入方式開啟,將檔案指標指向檔案頭並將檔案大小截為零。如果檔案不存在則嘗試建立之。 |
"w+" |
讀寫方式開啟,將檔案指標指向檔案頭並將檔案大小截為零。如果檔案不存在則嘗試建立之。 |
"a" |
寫入方式開啟,將檔案指標指向檔案末尾。如果檔案不存在則嘗試建立之。 |
"a+" |
讀寫方式開啟,將檔案指標指向檔案末尾。如果檔案不存在則嘗試建立之。 |
"x" |
建立並以寫入方式開啟,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 調用失敗並返回 FALSE,並產生一條 E_WARNING 層級的錯誤資訊。如果檔案不存在則嘗試建立之。 這和給底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。 此選項被 PHP 4.3.2 以及以後的版本所支援,僅能用於本地檔案。 |
"x+" |
建立並以讀寫方式開啟,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 調用失敗並返回 FALSE,並產生一條 E_WARNING 層級的錯誤資訊。如果檔案不存在則嘗試建立之。 這和給底層的 open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。 此選項被 PHP 4.3.2 以及以後的版本所支援,僅能用於本地檔案。 |
2.curl實現代碼:
代碼如下:
<?php
function _url($Date){
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, "$Date");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$contents = curl_exec($ch);
curl_close($ch);
return $contents;
}
$pageURL="http://www.baidu.com";
$contents=_url($pageURL);
?>
curl_close — 關閉一個curl會話
curl_copy_handle — 拷貝一個curl串連資源的所有內容和參數
curl_errno — 返回一個包含當前會話錯誤資訊的數字編號
curl_error — 返回一個包含當前會話錯誤資訊的字串
curl_exec — 執行一個curl會話
curl_getinfo — 擷取一個curl串連資源控制代碼的資訊
curl_init — 初始化一個curl會話
curl_multi_add_handle — 向curl批處理會話中添加單獨的curl控制代碼資源
curl_multi_close — 關閉一個批處理控制代碼資源
curl_multi_exec — 解析一個curl批處理控制代碼
curl_multi_getcontent — 返回擷取的輸出的文字資料流
curl_multi_info_read — 擷取當前解析的curl的相關傳輸資訊
curl_multi_init — 初始化一個curl批處理控制代碼資源
curl_multi_remove_handle — 移除curl批處理控制代碼資源中的某個控制代碼資源
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array — 以數組的形式為一個curl設定會話參數
curl_setopt — 為一個curl設定會話參數
curl_version — 擷取curl相關的版本資訊
curl_init()函數的作用初始化一個curl會話,curl_init()函數唯一的一個參數是可選的,表示一個url地址。
curl_exec()函數的作用是執行一個curl會話,唯一的參數是curl_init()函數返回的控制代碼。
curl_close()函數的作用是關閉一個curl會話,唯一的參數是curl_init()函數返回的控制代碼。
編碼轉換函式
代碼如下:
$html = file_get_contents(http://mb.111cn.net);
$html = iconv( "Big5", "UTF-8//IGNORE" , $html); //轉化編碼方式為UTF8
print $html;
$htm = file("http://s.111cn.net");
$h = "";
foreach($htm as $value)
{
$h.= iconv( "GB2312", "utf-8//IGNORE" , $value);
}
print_r($h);
file_get_contents(path,include_path,context,start,max_length)
參數 |
描述 |
path |
必需。規定要讀取的檔案。 |
include_path |
可選。如果也想在 include_path 中搜尋檔案的話,可以將該參數設為 "1"。 |
context |
可選。規定檔案控制代碼的環境。 context 是一套可以修改流的行為的選項。若使用 null,則忽略。 |
start |
可選。規定在檔案中開始讀取的位置。該參數是 PHP 5.1 新加的。 |
max_length |
可選。規定讀取的位元組數。該參數是 PHP 5.1 新加的。 |
另一種開啟網頁的方法
代碼如下:
<?php
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: enrn" .
"Cookie: foo=barrn"
)
);
$context = stream_context_create($opts);
/* Sends an http request to www.111cn.net
with additional headers shown above */
$fp = fopen('http://www.baidu.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>