php如何讀取文件
Ⅰ php如何獲取文件內容
PHP 中的file_get_contents() 函數可以實現
file_get_contents() 函數把整個文件讀入一個字元串中。
和 file() 一樣,不同的是 file_get_contents() 把文件讀入一個字元串。
file_get_contents() 函數是用於將文件的內容讀入到一個字元串中的首選方法。如果操作系統支持,還會使用內存映射技術來增強性能。
例如:
<?php
echo file_get_contents("test.txt");
?>
Ⅱ PHP如何實現讀取指定文件內的某些內容
PHP的 fgets(從文件指針中讀指定內容)
語法:
fgets(filepointer)
filepointer,要讀取的文件指針。如果成功,從文件中讀取一行並返回字元串,如果失敗,返回 FALSE。
示例:
<?php
$fp=fopen("test.txt","r");
if($fp)
{
for($i=1;!feof($fp);$i++)
{
echo"行".$i.":".fgets($fp)."<br/>";
}
}
else
{
echo"打開文件失敗";
}
fclose($fp);
?>
假設test.txt的內容為:
hello world
hello cnblogs
hello heihaozi
hello everyone
頁面輸出的結果為:
行1 : hello world
行2 : hello cnblogs
行3 : hello heihaozi
行4 : hello everyone
Ⅲ php 怎樣讀取excel表格內容 - 技術問答
常用的用PHP讀取EXCEL的方法有以下三種,各自有各自的優缺點。個人推薦用第三種方法,因為它可以跨平台使用。
1. 以.csv格式讀取
將.xls轉換成.csv的文本格式,然後再用PHP分析這個文件,和PHP分析文本沒有什麼區別。
優點:跨平台,效率比較高、可以讀寫。
缺點:只能直接使用.csv的文件,如果經常接受.xls二進制文件的話需要手工轉換,不能自動化。一個文件只有一個SHEET。
PHP有自帶的分析.csv函數:fgetcsv
array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle 一個由 fopen()、popen() 或 fsockopen() 產生的有效文件指針。
length (可選)必須大於 CVS 文件內最長的一行。在 PHP 5 中該參數是可選的。如果忽略(在 PHP 5.0.4 以後的版本中設為 0)該參數的話,那麼長度就沒有限制,不過可能會影響執行效率。
delimiter (可選)設置欄位分界符(只允許一個字元),默認值為逗號。
enclosure (可選)設置欄位環繞符(只允許一個字元),默認值為雙引號。該參數是在 PHP 4.3.0 中添加的。 和 fgets() 類似,只除了 fgetcsv() 解析讀入的行並找出 CSV 格式的欄位然後返回一個包含這些欄位的數組。
fgetcsv() 出錯時返回 FALSE,包括碰到文件結束時。
注意: CSV 文件中的空行將被返回為一個包含有單個 null 欄位的數組,不會被當成錯誤。
當然也可以自己手動分析字元串。
還可以利用fputcsv函數將行格式化為 CSV 並寫入文件指針。
2. ODBC鏈接數據源
優點:支持多種格式,cvs, xls等。支持讀寫,使用標准SQL語言,和SQLSERVER、MYSQL資料庫幾乎完全一樣。
缺點:值支持windows伺服器
3. PHP自定義類
優點:跨平台。某些類支持寫操作。支持.xls二進制文件
常用的類有phpExcelReader、PHPExcel。其中後者支持讀寫,但是需要php5.2以上版本。
phpExcelReader是專門用來讀取文件的。返回一個數組,包含表格的所有內容。
該 class 使用的方法可以參考網站下載回來的壓縮檔中的 example.php。
不過我下載回來的 (版本 2009-03-30),有兩點要注意:
reader.php 中的下面這行要修改
將 require_once 『Spreadsheet/Excel/Reader/OLERead.php』;
改為 require_once 『oleread.inc』;
example.php 中
修改 $data->setOutputEncoding(』CP1251′);
為 $data->setOutputEncoding(』CP936′);
example2.php 中
修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));
為 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));
不然中文會有問題。
繁體的話可以修改為CP950、日文是CP932,具體可參考codepage說明。
修改 $data->read(』jxlrwtest.xls』) 為自己的 excel 文件名,zip 檔中附的 jxlrwtest.xls 應該是壞了。
