Ⅰ B.php中讀取文件內容的幾種方法
php讀取文件內容:
—–第一種方法—–fread()——–
<?php$file_path= "test.txt";if(file_exists($file_path)){$fp= fopen($file_path,"r");$str= fread($fp,filesize($file_path));//指定讀取大小,這里把整個文件內容讀取出來echo $str = str_replace("\r\n","<br
/>",$str);
}?>123456789101112131415161718
——–第二種方法————
<?php$file_path= "test.txt";if(file_exists($file_path)){$str= file_get_contents($file_path);//將整個文件內容讀入到一個字元串中$str= str_replace("\r\n","<br
/>",$str);echo$str;
}?>
-----第三種方法------------<?php$file_path= "test.txt";if(file_exists($file_path)){$fp= fopen($file_path,"r");$str= "";$buffer= 1024;//每次讀取
1024 位元組while(!feof($fp)){//循環讀取,直至讀取完整個文件$str.= fread($fp,$buffer);
}$str= str_replace("\r\n","<br
/>",$str);echo$str;
}?>
-------第四種方法--------------<?php$file_path= "test.txt";if(file_exists($file_path)){$file_arr= file($file_path);for($i=0;$i<count($file_arr);$i++){//逐行讀取文件內容echo$file_arr[$i]."<br
/>";
}/*
foreach($file_arr
as $value){
echo
$value."<br />";
}*/}?>2526272829303132333435
—-第五種方法——————–
<?php$file_path= "test.txt";if(file_exists($file_path)){$fp= fopen($file_path,"r");$str="";while(!feof($fp)){$str.= fgets($fp);//逐行讀取。如果fgets不寫length參數,默認是讀取1k。}$str= str_replace("\r\n","<br
/>",$str);echo$str;
}?>252627282930313233343536
Ⅱ php如何高效的讀取大文件
1. 直接採用file函數來操作
由於 file函數是一次性將所有內容讀入內存,而PHP為了防止一些寫的比較糟糕的程序佔用太多的內存而導致系統內存不足,使伺服器出現宕機,所以默認情況下限制只能最大使用內存16M,這是通過php.ini里的 memory_limit = 16M 來進行設置,這個值如果設置-1,則內存使用量不受限制
2.直接調用Linux的 tail 命令來顯示最 後幾行
在Linux命令行下,可以直接使用 tail -n 10 access.log 很輕易的顯示日誌文件最後幾行,可以直接用PHP來調用tail命令
3. 直接使用PHP的 fseek 來進行文件操作
這種方式是最為普遍的方式,它不需要將文件的內容全部讀入內容,而是直接通過指針來操作,所以效率是相當高效的。在使用fseek來對文件進行操作時,也有多種不同的方法,效率可能也是略有差別的
Ⅲ php如何獲取文件內容
PHP 中的file_get_contents() 函數可以實現
file_get_contents() 函數把整個文件讀入一個字元串中。
和 file() 一樣,不同的是 file_get_contents() 把文件讀入一個字元串。
file_get_contents() 函數是用於將文件的內容讀入到一個字元串中的首選方法。如果操作系統支持,還會使用內存映射技術來增強性能。
例如:
<?php
echo file_get_contents("test.txt");
?>
Ⅳ php 使用file_get_contents讀取大文件的方法
當我們遇到文本文件體積很大時,比如超過幾十M甚至幾百M幾G的大文件,用記事本或者其它編輯器打開往往不能成功,因為他們都需要把文件內容全部放到內存裡面,這時就會發生內存溢出而打開錯誤,遇到這種情況我們可以使用PHP的文件讀取函數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()
函數是用來將文件的內容讀入到一個字元串中的首選方法。如果操作系統支持還會使用內存映射技術來增強性能。
應用:
復制代碼
代碼如下:
$str
=
$content=file_get_contents("2.sql",FALSE,NULL,1024*1024,1024);
echo
$str;
如果針對較小文件只是希望分段讀取並以此讀完可以使用fread()函數
復制代碼
代碼如下:
$fp=fopen('2.sql','r');
while
(!feof($fp)){
$str.=fread($fp,
filesize
($filename)/10);//每次讀出文件10分之1
//進行處理
}
echo
$str;
Ⅳ PHP讀取目錄下所有文件內容並顯示
<?php
function printFile($filepath)
{
//substr(string,start,length)函數返回字元串的一部分;start規定在字元串的何處開始 ;length規定要返回的字元串長度。默認是直到字元串的結尾。
//strripos(string,find,start)查找 "php" 在字元串中最後一次出現的位置; find為規定要查找的字元;start可選。規定開始搜索的位置
//讀取文件後綴名
//$filetype = substr ( $filename, strripos ( $filename, "." ) + 1 );
//判斷是不是以txt結尾並且是文件
#if ($filetype == "txt" && is_file ( $filepath . "/" . $filename ))
if ( is_file ( $filepath))
{
$filename=iconv("gb2312","utf-8",$filepath);
echo $filename."內容如下:"."<br/>";
$fp = fopen ( $filepath, "r" );//打開文件
#while (! feof ( $f )) //一直輸出直到文件結尾
$i = 1;
while ($i < 10)
{
$line = fgets ( $fp );
echo $line."<br/>";
$i = $i +1;
}
fclose($fp);
}
}
(此處空一行)
function readFileRecursive($filepath)
{
if (is_dir ( $filepath )) //判斷是不是目錄
{
$dirhandle = opendir ( $filepath );//打開文件夾的句柄
if ($dirhandle)
{
//判斷是不是有子文件或者文件夾
while ( ($filename = readdir ( $dirhandle ))!= false )
{
if ($filename == "." or $filename == "..")
{
//echo "目錄為「.」或「..」"."<br/>";
continue;
}
//判斷是否為目錄,如果為目錄遞歸調用函數,否則直接讀取列印文件
if(is_dir ($filepath . "/" . $filename ))
{
readFileRecursive($filepath . "/" . $filename);
}
else
{
//列印文件
printFile($filepath . "/" . $filename);
echo "<br/>";
}
}
closedir ( $dirhandle );
}
}
else
{
printFile($filepath . "/" . $filename);
return;
}
}
(此處空一行)
header("content-type:text/html;charset=utf-8");
#echo "Hello World"."<br/>";
$filepath = "C:/phpStudy/PHPTutorial/WWW/test/results"; //想要讀取的目錄
readFileRecursive($filepath )
?>
php還可以讀取文件夾下所有圖片,方法如下
hostdir=dirname(__FILE__).'/data/upload/admin/20170517/'; //要讀取的文件夾
(此處空一行)
$url = '/data/upload/admin/20170517/'; //圖片所存在的目錄
(此處空一行)
$filesnames = scandir($hostdir); //得到所有的文件
(此處空一行)
// print_r($filesnames);exit;
//獲取也就是掃描文件夾內的文件及文件夾名存入數組 $filesnames
(此處空一行)
$www = 'http://www.***.com/'; //域名
(此處空一行)
foreach ($filesnames as $name) {
$aurl= "<img width='100' height='100' src='".$www.$url.$name."' alt = '".$name."'>"; //圖片
echo $aurl . "<br/>"; //輸出他
Ⅵ 如何使用PHP讀取文本文件內容
利用PHP讀取文本文件的內容,其實很簡單,我們只需要掌握函數「file_get_contents();」的使用就可以了。下面,小編將作詳細的介紹。
工具/原料
電腦一台
WAMP開發環境
方法/步驟
file_get_content()函數介紹。使用file_get_contents()獲取txt文件的內容,具體參數說明如下:
2
具體實例說明。從文本文件tst.txt中讀取裡面的內容並顯示在瀏覽器中,具體代碼和圖示如下:
<?php
$file = 'tst.txt';
$content = file_get_contents($file); //讀取文件中的內容
echo $content;
?>
Ⅶ 關於PHP讀寫文件
相關
php函數
:
fopen()打開文件。
格式如:fopen("文件路徑","r")。
fopen()函數有參數第一個參數要指明文件,第二個參數可以是r,w等,讀文件時就可以是r,寫文件時可以是w。
fwrite()和
fputs()寫文件。
fclose()
關閉文件
。
fgets()讀取記錄。最常用的是以上這些函數。
Ⅷ php讀取文件操作
在file讀文件之前,無需使用fopen打開。你的加上索引不知道是什麼意思,是不是把文件轉換為二維數組呀,你試試看下面的代碼:
$data = file('date.txt');//讀取全部內容;
foreach ($data as $i=>$line) $data[$i]=explode(chr(8),$data[$i]);
echo '<pre>';
print_r($data);
echo '</pre>';
Ⅸ PHP中讀取文件的幾個方法
java">//方法一
file_get_contents();
//方法二
$path='./hello.txt';
$mode='a';
$file=fopen($path,$mode);
...
Ⅹ 1.php中讀取文件內容的幾種方法
常見的就兩種,file_get_contents和fopen, fread, fclose.這兩種都是讀取文本文件。