十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
?php????????
創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),鐘樓網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:鐘樓等地區(qū)。鐘樓做網(wǎng)站價(jià)格咨詢:13518219792
/**??????
*?PHP中列出目錄中的目錄和文件的幾種方法??????
*/???????
//兼容PHP4和PHP5的寫法????????
function?getFileList($directory)?{????????
$files?=?array();????????
if(is_dir($directory))?{????????
if($dh?=?opendir($directory))?{????????
while(($file?=?readdir($dh))?!==?false)?{????????
if($file?!=?'.'??$file?!=?'..')?{????????
$files[]?=?$file;????????
}????????
}????
closedir($dh);????????
}????????
}????????
return?$files;????????
}????????
//PHP5中的簡單方法????????
function?getFileList2($directory)?{????????
$files?=?array();????????
if(is_dir($directory))?{????????
if($files?=?scandir($directory))?{????????
$files?=?array_slice($files,2);????????
}????????
}????????
return?$files;????????
}????????
//使用PHP5面向?qū)ο蟮膶懛????????
function?getFileList3($directory)?{????????
$files?=?array();????????
try?{????????
$dir?=?new?DirectoryIterator($directory);????????
}?catch?(Exception?$e)?{????????
throw?new?Exception($directory?.?'?is?not?readable');????????
}????????
foreach($dir?as?$file)?{????????
if($file-isDot())?continue;????????
$files[]?=?$file-getFileName();????????
}????????
return?$files;????????
}????????
//測試代碼????????
$dir?=?dirname(__FILE__);????????
var_dump(getFileList($dir));????????
?
進(jìn)入php源程序目錄中的ext目錄中,這里存放著各個(gè)擴(kuò)展模塊的源代碼,選擇你需要的模塊,比如curl模塊:cd curl執(zhí)行phpize生成編譯文件!
phpize在PHP安裝目錄的bin目錄/usr/local/php5/bin/phpize運(yùn)行時(shí),
可能會(huì)報(bào)錯(cuò):Cannot find autoconf. Please check your autoconf installation andthe $PHP_AUTOCONFenvironment variable is set correctly and then rerun thisscript.,需要安裝autoconf:yum install autoconf(RedHat或者CentOS)、apt-get installautoconf(Ubuntu Linux)!
執(zhí)行/usr/local/php5/bin/php -v這個(gè)命令時(shí),php會(huì)去檢查配置文件是否正確,
如果有配置錯(cuò)誤,這里會(huì)報(bào)錯(cuò),可以根據(jù)錯(cuò)誤信息去排查!
一般來說php中讀取目錄下的文件名的方式確實(shí)不少,最簡單的是scandir,具體代碼如下:\x0d\x0a復(fù)制代碼 代碼如下:$dir="./caxa/";\x0d\x0a$file=scandir($dir);\x0d\x0aprint_r($file);\x0d\x0a稍微復(fù)雜點(diǎn)的,來自于php手冊:\x0d\x0a復(fù)制代碼 代碼如下:$dir = "/etc/php5/";\x0d\x0a// Open a known directory, and proceed to read its contents\x0d\x0aif (is_dir($dir)) {\x0d\x0aif ($dh = opendir($dir)) {\x0d\x0awhile (($file = readdir($dh)) !== false) {\x0d\x0aecho "filename: $file : filetype: " . filetype($dir . $file) . "\n";\x0d\x0a} closedir($dh);\x0d\x0a}\x0d\x0a}\x0d\x0a這些都只能讀取當(dāng)前指定目錄下的文件,對(duì)子目錄中的文件則無法讀取。原來自己寫過一個(gè)循環(huán)刪除所有目錄的一段代碼,需要逐個(gè)子目錄刪除所有文件,包括多層。但是只需要讀出文件名,稍微復(fù)雜點(diǎn),網(wǎng)上找到一個(gè)能用,原始代碼有錯(cuò)誤提示,改了一下引用$data的地方,如下所示:\x0d\x0a復(fù)制代碼 代碼如下:function searchDir($path,$data){\x0d\x0aif(is_dir($path)){\x0d\x0a$dp=dir($path);\x0d\x0awhile($file=$dp-read()){\x0d\x0aif($file!='.' $file!='..'){\x0d\x0asearchDir($path.'/'.$file,$data);\x0d\x0a}\x0d\x0a}\x0d\x0a$dp-close();\x0d\x0a}\x0d\x0aif(is_file($path)){\x0d\x0a$data[]=$path;\x0d\x0a}\x0d\x0a}\x0d\x0afunction getDir($dir){\x0d\x0a$data=array();\x0d\x0asearchDir($dir,$data);\x0d\x0areturn $data;\x0d\x0a}\x0d\x0aprint_r(getDir('.'));\x0d\x0a希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。
?php
function printFile($filepath)
{
//substr(string,start,length)函數(shù)返回字符串的一部分;start規(guī)定在字符串的何處開始 ;length規(guī)定要返回的字符串長度。默認(rèn)是直到字符串的結(jié)尾。
//strripos(string,find,start)查找 "php" 在字符串中最后一次出現(xiàn)的位置; find為規(guī)定要查找的字符;start可選。規(guī)定開始搜索的位置
//讀取文件后綴名
//$filetype = substr ( $filename, strripos ( $filename, "." ) + 1 );
//判斷是不是以txt結(jié)尾并且是文件
#if ($filetype == "txt" is_file ( $filepath . "/" . $filename ))
if ( is_file ( $filepath))
{
$filename=iconv("gb2312","utf-8",$filepath);
echo $filename."內(nèi)容如下:"."br/";
$fp = fopen ( $filepath, "r" );//打開文件
#while (! feof ( $f )) //一直輸出直到文件結(jié)尾
$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;
}
//判斷是否為目錄,如果為目錄遞歸調(diào)用函數(shù),否則直接讀取打印文件
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 )
?
擴(kuò)展資料:
php還可以讀取文件夾下所有圖片,方法如下
hostdir=dirname(__FILE__).'/data/upload/admin/20170517/'; //要讀取的文件夾
(此處空一行)
$url = '/data/upload/admin/20170517/'; //圖片所存在的目錄
(此處空一行)
$filesnames = scandir($hostdir); //得到所有的文件
(此處空一行)
//? print_r($filesnames);exit;
//獲取也就是掃描文件夾內(nèi)的文件及文件夾名存入數(shù)組 $filesnames
(此處空一行)
$www = '.***點(diǎn)抗 /'; //域名
(此處空一行)
foreach ($filesnames as $name) {
$aurl= "img width='100' height='100' src='".$."' alt = '".$name."'"; //圖片
echo $aurl . "br/"; //輸出他