程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 關於php fread()使用技巧

關於php fread()使用技巧

編輯:PHP綜合
說明
string fread ( int handle, int length )
fread() 從文件指針 handle 讀取最多 length 個字節。該函數在讀取完最多 length 個字節數,或到達 EOF 的時候,或(對於網絡流)當一個包可用時,或(在打開用戶空間流之後)已讀取了 8192 個字節時就會停止讀取文件,視乎先碰到哪種情況。
返回所讀取的字符串,如果出錯返回 FALSE。
復制代碼 代碼如下:
<?php
// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize ($filename));
fclose($handle);
?>

警告
在區分二進制文件和文本文件的系統上(如 Windows)打開文件時,fopen() 函數的 mode 參數要加上 'b'。
復制代碼 代碼如下:
<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize ($filename));
fclose($handle);
?>

警告
當從任何不是普通本地文件讀取時,例如在讀取從遠程文件或 popen() 以及 proc_open() 返回的流時,讀取會在一個包可用之後停止。這意味著應該如下例所示將數據收集起來合並成大塊。
復制代碼 代碼如下:
<?php
// 對 PHP 5 及更高版本
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>

<?php
$handle = fopen ("http://www.example.com/", "rb");
$contents = "";
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>

注意: 如果只是想將一個文件的內容讀入到一個字符串中,用 file_get_contents(),它的性能比上面的代碼好得多。
額外:
file_get_contents
(PHP 4 >= 4.3.0, PHP 5)
file_get_contents -- 將整個文件讀入一個字符串
說明
string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

和 file() 一樣,只除了 file_get_contents() 把文件讀入一個字符串。將在參數 offset 所指定的位置開始讀取長度為 maxlen 的內容。如果失敗,file_get_contents() 將返回 FALSE。
file_get_contents() 函數是用來將文件的內容讀入到一個字符串中的首選方法。如果操作系統支持還會使用內存映射技術來增強性能。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved