當前位置:首頁 » 編程語言 » php讀取所有文件

php讀取所有文件

發布時間: 2022-05-27 08:56:16

php 怎樣讀取指定目錄下面的所有文件

functiontreeDirectory($dir)
{
$files=array();
$dirpath=realpath($dir);
$filenames=scandir($dir);

foreach($filenamesas$filename)
{
if($filename=='.'||$filename=='..')
{
continue;
}

$file=$dirpath.DIRECTORY_SEPARATOR.$filename;

if(is_dir($file))
{
$files=array_merge($files,self::treeDirectory($file));
}
else
{
$files[]=$file;
}
}

return$files;
}

Ⅱ 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如何讀取某目錄下的所有同類型文件

PHP使用函數opendir、readdir、closedir來實現文件夾的操作,下面以一個最基本的例子來作為入門介紹:

<?php
//獲取某目錄下所有文件、目錄名(不包括子目錄下文件、目錄名)
$dir='C:/Users/';
$handler=opendir($dir);
while(($filename=readdir($handler))!==false){//務必使用!==,防止目錄下出現類似文件名「0」等情況
if($filename!="."&&$filename!=".."){
$files[]=$filename;
}
}
}
closedir($handler);

//列印所有文件名
foreach($filensas$value){
echo$value."<br/>";
}
?>

上面的代碼顯示c:users文件夾裡面的所有的文件和文件夾,忽略.和..兩個特殊含義的文件夾,程序把所有文件和文件夾名稱掃描保存到數組裡面,然後顯示。


如果你需要對文件進行過濾,例如只處理*.xls文件,可以在過濾.和..的地方添加代碼。例如:

if (substr($filename,-4)=='.xls'){


當你理解了上面的代碼之後,你就能編寫掃描子文件夾、以及子 文件夾裡面文件的方法了。基本思路是使用遞歸,下面我給出一個簡單的例子:

functionget_allfiles($path,&$files){
if(is_dir($path)){
$dp=dir($path);
while($file=$dp->read()){
if($file!="."&&$file!=".."){
get_allfiles($path."/".$file,$files);
}
}
$dp->close();
}
if(is_file($path)){
$files[]=$path;
}
}

functionget_filenamesbydir($dir){
$files=array();
get_allfiles($dir,$files);
return$files;
}

$filenames=get_filenamesbydir("c:/users/");
//列印所有文件名,包括路徑
foreach($filenamesas$value){
echo$value."<br/>";
}

這個例子使用dir類來編寫,實際上用opendir、readdir、closedir來寫也是相同的。

Ⅳ php讀取目錄及子目錄下所有txt文件,再替換每個txt文件里system字元

php中讀取目錄下的文件名的方式確實不少,最簡單的是scandir,具體代碼如下:
$dir="./目錄名/";
$file=scandir($dir);
print_r
($file);

Ⅳ 如何用php讀取指定文件夾里所有文件並做成鏈接

<?php

//設定報錯等級,如果是開源程序插件不需要設定

error_reporting(E_ERROR|E_PARSE);

//定義欲讀取的目錄路徑,方便演示,本程序讀取的是當前文件所在目錄

$path='.';

//獲取文件列表數組

$files=ReadFolder($path);

//處理文件列表數組

foreach($filesas$value){

//顯示文件鏈接

echo'<ahref="'.$value.'">'.$value.'</a>';

//為方便查看,輸出一個<br/>換行符

echo'<br/>';

}

/*定義自定義函數*/

/**

*獲取文件列表

*

*@paramstring $dir 欲讀取的目錄路徑

*@paramboolean$mode0:讀取全部;1:僅讀取文件;2:僅讀取目錄

*@returnarray

*/

functionReadFolder($dir,$mode=0){

//如果打開目錄句柄失敗,則輸出空數組

if(!$handle=@opendir($dir))returnarray();

//定義文件列表數組

$files=array();

//遍歷目錄句柄中的條目

while(false!==($file=@readdir($handle))){

//跳過本目錄以及上級目錄

if('.'===$file||'..'===$file)continue;

//是否僅讀取目錄

if($mode===2){

if(isDir($dir.'/'.$file))$files[]=$file;

//是否僅讀取文件

}elseif($mode===1){

if(isFile($dir.'/'.$file))$files[]=$file;

//讀取全部

}else{

$files[]=$file;

}

}

//關閉打開的目錄句柄

@closedir($handle);

//輸出文件列表數組

return$files;

}

/**

*判斷輸入是否為目錄

*

*@paramstring$dir

*@returnboolean

*/

functionisDir($dir){

return$dir?is_dir($dir):false;

}

/**

*判斷輸入是否為文件

*

*@paramstring$file

*@returnboolean

*/

functionisFile($file){

return$file?is_file($file):false;

}

?>

Ⅵ PHP讀取目錄下所有文件

php中讀取目錄下的文件名的方式確實不少,最簡單的是scandir,具體代碼如下:
$dir="./目錄名/";
$file=scandir($dir);
print_r($file);

Ⅶ PHP如何讀出當前目錄下所有文件

一般來說php中讀取目錄下的文件名的方式確實不少,最簡單的是scandir,具體代碼如下:
復制代碼 代碼如下:$dir="./caxa/";
$file=scandir($dir);
print_r($file);
稍微復雜點的,來自於php手冊:
復制代碼 代碼如下:$dir = "/etc/php5/";
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
} closedir($dh);
}
}
這些都只能讀取當前指定目錄下的文件,對子目錄中的文件則無法讀取。原來自己寫過一個循環刪除所有目錄的一段代碼,需要逐個子目錄刪除所有文件,包括多層。但是只需要讀出文件名,稍微復雜點,網上找到一個能用,原始代碼有錯誤提示,改了一下引用&$data的地方,如下所示:
復制代碼 代碼如下:function searchDir($path,&$data){
if(is_dir($path)){
$dp=dir($path);
while($file=$dp->read()){
if($file!='.'&& $file!='..'){
searchDir($path.'/'.$file,$data);
}
}
$dp->close();
}
if(is_file($path)){
$data[]=$path;
}
}
function getDir($dir){
$data=array();
searchDir($dir,$data);
return $data;
}
print_r(getDir('.'));
希望本文所述對大家的PHP程序設計有所幫助。

Ⅷ 如何用php讀取指定文件夾里所有文件並做成鏈接

<?php
//設定報錯等級,如果是開源程序插件不需要設定
error_reporting(E_ERROR | E_PARSE);
//定義欲讀取的目錄路徑,方便演示,本程序讀取的是當前文件所在目錄
$path = '.';
//獲取文件列表數組
$files = ReadFolder($path);
//處理文件列表數組
foreach ($files as $value) {
//顯示文件鏈接
echo '<a href="' . $value . '">' . $value . '</a>';
//為方便查看,輸出一個 <br /> 換行符
echo '<br />';
}
/* 定義自定義函數 */
/**
* 獲取文件列表
*
* @param string $dir 欲讀取的目錄路徑
* @param boolean $mode 0:讀取全部;1:僅讀取文件;2:僅讀取目錄
* @return array
*/

Ⅸ 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 )

?>

(9)php讀取所有文件擴展閱讀:

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/>"; //輸出他

熱點內容
androidweb框架 發布:2025-02-12 17:32:45 瀏覽:75
安卓編程賀卡 發布:2025-02-12 17:32:44 瀏覽:837
php獲取資料庫的欄位 發布:2025-02-12 17:29:02 瀏覽:765
伺服器地址消失 發布:2025-02-12 17:23:36 瀏覽:950
後台執行php腳本 發布:2025-02-12 17:21:45 瀏覽:470
spring編程式事務 發布:2025-02-12 17:16:55 瀏覽:397
nginx禁止ip訪問 發布:2025-02-12 17:15:14 瀏覽:273
外網訪問埠 發布:2025-02-12 17:09:09 瀏覽:541
威蘭達四驅豪華版都有哪些配置 發布:2025-02-12 16:54:34 瀏覽:120
nokia恢復出廠密碼是多少 發布:2025-02-12 16:49:03 瀏覽:276