php獲取文件夾下的文件
A. php如何遍歷指定文件夾,獲取所有文件列表並生成下載鏈接
試編寫代碼如下:
<?php
$dir="D:/WWW/ftp";//指定的路徑
$sitepath='http://localhost/ftp/';
//遍歷文件夾下所有文件
if(false!=($handle=opendir($dir))){
echo"$dir目錄下的文件列表:<BR/>";
$i=0;
while(false!==($file=readdir($handle))){
if($file!="."&&$file!=".."&&!is_dir($dir.'/'.$file)){
echo'<ahref="'.$sitepath.$file.'">'.$file.'</a><br/>';
}
}
//關閉句柄
closedir($handle);
}
?>
代碼中需要提示的是:
如果是運行於互聯網上,需要考慮文件的訪問安全性。
運行截圖:
B. 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;
}
C. php獲取文件夾裡面多個txt文件中的隨機一行
foreach (scandir('data') as $f) if (preg_match('/\d+\.txt/i', $f, $r) {
$arr=file($f);
$n=rand(0, count($arr)-1);
echo "$f 文件第 $n 行(隨機數)內容為: {$arr[$n]}<br>\n";
}
D. PHP怎麼讀取php所在文件夾下的圖片和mp3文件,並且顯示出來
顯示本文件夾下的A.JPG的語句:
echo"<imgsrc='a.jpg'/>";
可能你已經明白了,其實PHP輸出的是HTML代碼,PHP無需具體讀取文件內容,也無法在客戶的瀏覽器上繪圖,這一切只有交給瀏覽器去實現。
E. PHP 查找文件夾里的文件
我來修改下吧:
你把
if(strstr($entry,$_REQUEST["kw"]))
{
$string = file_get_contents($entry);
echo $string."\n";
break;
}
改成
if(strstr($entry,$_REQUEST["kw"]))
{
$string = file_get_contents($targetdir.'/'.$entry);
echo $string."\n";
break;
}
F. php獲取文件夾下所有文件名
function dir_file_handle($dir,$dir_handle,$file_handle,&$array=NULL) {
$array = array();
function circle($dir,$dir_handle,$file_handle,&$array){
$handle=opendir($dir);
while(($file=readdir($handle))!==false){
if($file!="." && $file!=".."){
if(is_dir("$dir/$file")){
//文件夾操作
eval($dir_handle);
circle("$dir/$file",$dir_handle,$file_handle,&$array);
}else{
//文件操作
eval($file_handle);
}
}
}
}
@circle($dir,$dir_handle,$file_handle,$array);
}
function list_dir_file($array) {
$indent = 0;
static $preindent = 0;
while (list($key,$value) = each($array)) {
$indent = count(explode('/', $key));
if ($indent == 1) {
$indent = $preindent;
}else {
$preindent = $indent;
}
$dirname = substr(strrchr($key, '/'), 1);
if (is_array($value)) {
echo str_repeat("", $indent)."|-$dirname<br>";
list_dir_file($value);
}else {
echo str_repeat("", $indent*2)."$value<br>";
}
}
}
dir_file_handle(
'./01',
'
if(is_null($array["$dir"])) {
$array["$dir"] = array();
}
if(is_null($array["$dir/$file"])) {
$array["$dir/$file"] = array();
}
',
'array_push($array["$dir"],$file);',
$array
);
list_dir_file($array);
G. 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程序設計有所幫助。
H. php獲得文件夾下所有文件的遞歸演算法的簡單實例
如下所示:
function
my_scandir($dir)
{
$files=array();
if(is_dir($dir))
{
if($handle=opendir($dir))
{
while(($file=readdir($handle))!==false)
{
if($file!="."
&&
$file!="..")
{
if(is_dir($dir."/".$file))
{
$files[$file]=my_scandir($dir."/".$file);
}
else
{
$files[]=$dir."/".$file;
}
}
}
closedir($handle);
return
$files;
}
}
}
以上就是小編為大家帶來的php獲得文件夾下所有文件的遞歸演算法的簡單實例全部內容了,希望大家多多支持腳本之家~
I. 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/>"; //輸出他