php获取目录文件
㈠ php怎么获取文件目录权限
PHP获取文件目录权限函数fileperms,使用这个函数可以文件或者目录属性。
例子程序:
<?php
$perms=fileperms('/etc/passwd');
if(($perms&0xC000)==0xC000){
//Socket
$info='s';
}elseif(($perms&0xA000)==0xA000){
//SymbolicLink
$info='l';
}elseif(($perms&0x8000)==0x8000){
//Regular
$info='-';
}elseif(($perms&0x6000)==0x6000){
//Blockspecial
$info='b';
}elseif(($perms&0x4000)==0x4000){
//Directory
$info='d';
}elseif(($perms&0x2000)==0x2000){
//Characterspecial
$info='c';
}elseif(($perms&0x1000)==0x1000){
//FIFOpipe
$info='p';
}else{
//Unknown
$info='u';
}
㈡ php如何获取目录下所有文件名
<?php
functionfilesinfo($path){
//检查路径合法性
if(!is_dir($path))returnfalse;//不合法
//用系统函数获得文件名数组
$files=scandir($path);
//定义静态变量记录调用次数
static$count=-1;
//遍历数组
foreach($filesas$file){
//如果是'.'或'..'文件,跳过当次循环
if($file=='.'||$file=='..')continue;
//将文件信息存入数组
$arr[]=iconv('gbk','utf-8',$file);
}
//每次调用,次数加1
$count+=1;
//根据调用次数返回第N个结果
return$arr[$count];
}
//第1次调用,./替换成你自己的目录路径
echofilesinfo('./').'</br>';
//第2次调用
echofilesinfo('./').'</br>';
//第3次调用
echofilesinfo('./').'</br>';
?>
㈢ PHP读取目录下所有文件
php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:
$dir="./目录名/";
$file=scandir($dir);
print_r($file);
㈣ 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如何得到指定目录下的文件名
candir()函数可以获取目录下包括.和..的所有文件名和目录名
㈥ 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;
}
㈦ php中如何获得服务器的根目录
需要准备的材料分别是:电脑、php编辑器、浏览器。
1、首先,打开php编辑器,再新建php文件,例如:index.php。
㈧ 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 )
?>
(8)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/>"; //输出他
㈨ php 读取目录和文件
如果不知道子目录的命名和个数,则需要先遍历子目录
opendir,readdir,closedir等即可
或者使用类dir,具体参考参见PHP说明文档
http://cn.php.net/manual/en/ref.dir.php
下面是一段示例代码:
$dirhandle = opendir("../prodocs");
while(($file = readdir($dirhandle)) != NULL)
{
if(is_dir("../prodocs/$file"))
{
continue;
}
.........
}
closedir($dirhandle);
读取文件,根据上面的遍历结果和指定的文件名即可开始读取文件内容
具体函数和C标准函数是类似的
fopen,fclose,fseek,fread,fwrite等
这是一段示例代码(来自PHP文档):
<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>
㈩ php递归获取目录内文件封装类分享
php递归获取目录内文件封装类分享,可以递归子目录
代码如下:
代码如下:
function
readFileFromDir($dir)
{
if
(!is_dir($dir))
{
return
false;
}
//打开目录
$handle
=
opendir($dir);
while
(($file
=
readdir($handle))
!==
false)
{
//排除掉当前目录和上一个目录
if
($file
==
"."
||
$file
==
"..")
{
continue;
}
$file
=
$dir
.
DIRECTORY_SEPARATOR
.
$file;
//如果是文件就打印出来,否则递归调用
if
(is_file($file))
{
print
$file
.
'<br
/>';
}
elseif
(is_dir($file))
{
readFileFromDir($file);
}
}
}
调用方式:
代码如下:
$dir
=
'/home/www/test';
readFileFromDir($dir);
查看php手册的话,还有一个方法scandir也可以使用,不过这个方法会一次性获取单级目录下的所有文件,存放到数组里,如果目录里的文件比较多的话,会卡。