十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
?php
创新互联公司是一家专注于网站制作、成都网站建设与策划设计,钟楼网站建设哪家好?创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:钟楼等地区。钟楼做网站价格咨询: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面向对象的写法
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));
?
进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:cd curl执行phpize生成编译文件!
phpize在PHP安装目录的bin目录/usr/local/php5/bin/phpize运行时,
可能会报错: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)!
执行/usr/local/php5/bin/php -v这个命令时,php会去检查配置文件是否正确,
如果有配置错误,这里会报错,可以根据错误信息去排查!
一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:\x0d\x0a复制代码 代码如下:$dir="./caxa/";\x0d\x0a$file=scandir($dir);\x0d\x0aprint_r($file);\x0d\x0a稍微复杂点的,来自于php手册:\x0d\x0a复制代码 代码如下:$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这些都只能读取当前指定目录下的文件,对子目录中的文件则无法读取。原来自己写过一个循环删除所有目录的一段代码,需要逐个子目录删除所有文件,包括多层。但是只需要读出文件名,稍微复杂点,网上找到一个能用,原始代码有错误提示,改了一下引用$data的地方,如下所示:\x0d\x0a复制代码 代码如下: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希望本文所述对大家的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 = '.***点抗 /'; //域名
(此处空一行)
foreach ($filesnames as $name) {
$aurl= "img width='100' height='100' src='".$."' alt = '".$name."'"; //图片
echo $aurl . "br/"; //输出他