php文件读取文件内容,PHP文件系统函数-读取文件内容几种方式
介紹幾種php獲取文件內容的方式
介紹讀取文件的方式之前,我們先看一下打開文件資源和關閉資源
名字資源綁定到一個流 - fopen
關閉一個已打開的文件指針 - fclose
$handle1 = fopen("/home/rasmus/file.txt", "r");
fclose($hanle1);
$handle2 = fopen("/home/rasmus/file.gif", "wb");
fclose($handle2);
$handle3 = fopen("http://www.example.com/", "r");
fclose($handle3);
$handle4 = fopen("ftp://user:password@example.com/somefile.txt", "w");
fclose($handle4);
?>
string fread ( resource $handle , int $length )
fread() 從文件指針 handle 讀取最多 length 個字節。 該函數在遇上以下幾種情況時停止讀取文件:
讀取了 length 個字節
到達了文件末尾(EOF)
(對于網絡流)一個包變為可用或者接口超時
如果流被讀緩沖并且它不表示普通文件,則最多讀取一個等于塊大小(通常為8192)的字節數; 取決于先前緩沖的數據,返回數據的大小可能大于塊大小。
先查看一下phpinfo.php文件的內容
> cat phpinfo.php
echo phpinfo();
獲取方式一
$dir = dirname(__FILE__);
$file = $dir . '/phpinfo.php';
$handle = fopen($file, "r");
//一次性輸出文件的內容
echo fread($handle, filesize($file)) . PHP_EOL;
fclose($handle);
獲取方式二
$dir = dirname(__FILE__);
$file = $dir . '/phpinfo.php';
//按照一定的大小循環輸出內容
while (!feof($handle)) { //判斷是否到文件結束
echo fread($handle, 1024) .PHP_EOL; //每次輸出1024字節
}
fclose($handle);
輸出結果都是:
echo phpinfo();
文件內容:
55,66
77
8899
009
88
008
每行占用一個數組key
$dir = dirname(__FILE__);
$file = $dir . '/phpinfo.php';
//FILE_IGNORE_NEW_LINES 在數組每個元素的末尾不要添加換行符
//FILE_SKIP_EMPTY_LINES 跳過空行
$lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
print_r($lines);
輸出結果:
//$lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
Array
(
[0] => 55,66
[1] => 77
[2] => 8899
[3] => 009
[4] => 88
[5] => 008
)
//$lines = file($file);
Array
(
[0] => 55,66
[1] => 77
[2] => 8899
[3] => 009
[4] => 88
[5] =>
[6] => 008
[7] =>
)
$dir = dirname(__FILE__);
$file = $dir . '/phpinfo.php';
$content1 = file_get_contents($file);
var_dump($content1);
$content = file_get_contents($file, null, null, 10, 20);
var_dump($content);
//輸出結果$content1
string(35) "55,66
77
8899
009
88
008
"
//輸出結果$content
string(20) "
8899
009
88
00"
文件內容:
55,66
77
8899
009
88
22
008
$dir = dirname(__FILE__);
$file = $dir . '/phpinfo.php';
$handle = fopen($file, 'r');
if (!$handle) {
echo '文件指針必須是有效的';
}
while (false !== $char = fgetc($handle)) {
echo $char;
}
//輸出結果
77
8899
009
88
22
008
給輸出結果加上換行,更加清楚的顯示:
$dir = dirname(__FILE__);
$file = $dir . '/phpinfo.php';
$handle = fopen($file, 'r');
if (!$handle) {
echo '文件指針必須是有效的';
}
while (false !== $char = fgetc($handle)) {
echo $char . PHP_EOL;
}
//輸出結果
5
5
,
6
6
7
7
8
8
……
fgets是從文件指針中讀取一行,fgetss 只多了一個去除php和html標記的
$dir = dirname(__FILE__);
$file = $dir . '/phpinfo.php';
$handle = fopen($file, 'r');
if (!$handle) {
echo '文件指針必須是有效的';
}
while (!feof($handle)) {
echo fgetss($handle, 1024);
}
fclose($handle);
//輸出結果
55,66
77
8899
009
88
22
008
總結
以上是生活随笔為你收集整理的php文件读取文件内容,PHP文件系统函数-读取文件内容几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不用数组,解决众数问题(前提 :众数出现
- 下一篇: 安装linux前分区,安装Linux系统