当前位置:首页 » 编程语言 » php遍历目录

php遍历目录

发布时间: 2023-04-12 15:42:46

php中如何用遍历目录做站内搜索拜托各位大神

兄弟,你是想做站内搜索,但是是没有必要去遍历目录的,因为这样效率会非常低迅卖下。你想做搜索肯定是先要有数据源,亩茄逗然后再对数据源进行分析产生索引,以后纳数所有的搜索都是建立在索引的基础上的。

⑵ 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);
}

?>


代码中需要提示的是:


如果是运行于互联网上,需要考虑文件的访问安全性。


运行截图:


⑶ php怎么遍历指定目录下的文件(可指定文件类

遍历目录下文件,首先获取该目录下的所有文件名。

$folder='./folder/';
foreach(scandir($folder)AS$value){
if($value=='.'OR$value=='..')continue;
echo'文件名:'.$value." ";
}

⑷ 求PHP遍历文件夹代码

1楼的弱爆了..
现在都玩php5了..用scandir函数最方便.

<?php
$dir = "."; //当前目录
list_file($dir);

function list_file($dir){
$list = scandir($dir); // 得到该文件下的所有文件和文件夹
foreach($list as $file){//遍历
$file_location=$dir."/".$file;//生成路径
if(is_dir($file_location) && $file!="." &&$file!=".."){ //判断是不是文件夹
echo "------------------------sign in $file_location------------------";
list_file($file_location); //继续遍历
}
echo "<br/>";
}
}
?>

⑸ php写一个函数,能够遍历一个文件夹下的所有文件和子文件夹

最近刚写的,可以遍历指定目录下的所有文件、文件夹、特定后缀的文件:

/**
*遍历目录
*@paramstring$dir绝对/相对路径
*@paramstring$filter默认*返回所有文件及文件夹,*.php仅返回php文件,如果$patten为GLOB_BRACE可实现多文件筛选,如*.{php,html},返回php和html文件
*@paramconst$patten默认GLOB_BRACE,可选:GLOB_ONLYDIR,更多参数请参考手册
*@paramstring/bool$nocache防止本次调用的结果缓存上次的结果,如果一个脚本仅调用一次本函数,则不用管,否则得设个值
*@returnarray
*/
functionglobdir($dir,$filter='*',$patten=GLOB_BRACE,$nocache=null){
static$file_arr=array();
isset($nocache)&&$file_arr=array();
if(!is_dir($dir))return;
if($patten==GLOB_ONLYDIR){
$code='if(is_dir($file)){$file_arr[]=$file;globdir($file,"*",GLOB_ONLYDIR);}';
}else{
$code='is_file($file)?$file_arr[]=$file:globdir($file,"'.$filter.'",'.$patten.');';
}
array_walk(glob("{$dir}/{$filter}",$patten),create_function('$file,$k,$file_arr',$code),&$file_arr);
if($filter!='*'){
array_walk(glob("{$dir}/*",GLOB_ONLYDIR),create_function('$dir,$k,$param','list($filter,$patten)=explode("|",$param);globdir($dir,$filter,$patten);'),"{$filter}|{$patten}");
}
return$file_arr;
}

⑹ PHP遍历文件夹中内容并显示出来会显示._文件名,请问生么原因,谢谢,或者如何过滤掉

很正常啊,这是系统自带的两个特殊隐藏目录。一个.是指代当前目录本身,一个..指代上级目录。平时隐藏了而已。你遍历出来不想显示直接在判断条件里加如果目录等于.或者..就不输出,直接跳过就完了

⑺ php 循环遍历文件夹下面的所有目录及文件并且每个文件都写入一句话

/****************************
*获取目录下的所有文件
*[$dir]文件夹路径
****************************/
functiondeepScanDir($dir){
$fileArr=array();
$dirArr=array();
$dir=rtrim($dir,'//');
if(is_dir($dir)){
$dirHandle=opendir($dir);
while(false!==($fileName=readdir($dirHandle))){
$subFile=$dir.DIRECTORY_SEPARATOR.$fileName;
if(is_file($subFile)){
$fileArr[]=$subFile;
}
elseif(is_dir($subFile)&&str_replace('.','',$fileName)!=''){
$dirArr[]=$subFile;
$arr=deepScanDir($subFile);
$dirArr=array_merge($dirArr,$arr['dir']);
$fileArr=array_merge($fileArr,$arr['file']);
}
}
closedir($dirHandle);
}
returnarray(
'dir'=>$dirArr,
'file'=>$fileArr
);
}
/****************************
*将内容写入文件
*[$filename]文件路径
*[$contents]文件内容
*[$type]读写类型
****************************/
functionwriteFileContents($filename,$contents,$type='a'){
if(!($fd=fopen($filename,$type)))
returnFALSE;

if(!fwrite($fd,$contents." ")){
fclose($fd);
returnFALSE;
}

fclose($fd);
returntrue;
}
#示例:
$dir="/usr/local/php/test/";
$dirFiles=deepScanDir($dir);
if(!empty($dirFiles['file'])){
foreach($dirFiles['file']as$file){
writeFileContents($file,"Hello",$type='a+');
}
}

⑻ PHP遍历目录下的图片,按顺序显示问题

<?php
error_reporting(0);
echo培和铅"<html><head><title>图片</title></head><bodybgcolor=000000><center><fontsize=2color=red>";//输出html相关代码
$page棚配=$_GET['page'];//获取当前页数
$max=3;//设置每页显示图片最大张数
$dir="./image/";
$handle=opendir($dir);//当前目录
while(($file=readdir($handle))!==false){//遍历该php文件所在目录
list($filesname,$kzm)=explode(".",$file);//获取扩展名
if($kzm=="gif"or$kzm=="jpg"or$kzm=="JPG"or$kzm=="png"){//文件过滤
if(!is_dir('./'.$file)){//文件夹过滤
$array[]=$file;//把符合条件的文件名存入数组
$i++;//记录图片总张数

}
}
}
for($j=$max*$page;$j<($max*$page+$max)&&$j<$i;++$j){//循环条件控制显示图片张数
echo"<imgwidht=200height=200src=image\".$array[$j].">"."配好<br>";//输出图片数组

}
$Previous_page=$page-1;
$next_page=$page+1;
if($Previous_page<0){
echo"上页";
echo"<ahref=?page=$next_page>下页</a>";
}elseif($page<=$i/$max){
echo"<ahref=?page=$Previous_page>上页</a>";
echo"<ahref=?page=$next_page>下页</a>";
}else{
echo"<ahref=?page=$Previous_page>上页</a>";
echo"下页";
}
echo"</center></body></html>";
?>

⑼ PHP遍历当前目录下json文件,并显示其中的指定内容。

<?php
header('Content-type:text/html;charset=utf-8');
$i = 1;
foreach(glob('*.json') as $txt)
{
echo '芹早第'.$i.'个文件'.basename($txt).':';
$arr=json_decode(file_get_contents($txt),true);
echo $arr[0]." ".$arr[1]." ".$arr[2]." "配首枝;
$i++;
echo '<hr/培敏>';
}

⑽ PHP 如何遍历一个目录 要求刚出来只显示第一级的文件夹和文件 当点击了文件夹的时候显示下级文件 要代码!

把变量填充到模板就自己搞定了,难道遇到问题,就什么都要别人给你搞定,自己能搞定的,就自己搞定。
<?php
error_reporting(E_ALL ^ E_NOTICE);
@header("Content-Type: text/html; charset=utf-8");

if($_GET['rootdir']){
$rootdir = $_GET['rootdir'];
}else{
$query = trim($_SERVER['QUERY_STRING'])!=''?queryCode($_SERVER['QUERY_STRING']):array();
$rootdir = $query['rootdir'];
print_r($query);
echo '<hr>';

$showpath = $query['showpath'];//选择的路径
$showpathData = explode('轿孝团/',$showpath);
$showpathData = array_diff($showpathData, array(''));
$showpathData = array_values($showpathData);
print_r($showpathData);
echo '<hr>';
}
(!$rootdir || !is_dir($rootdir)) && $rootdir = dirname(__FILE__);//定义默认根路径
$levl=0;
$nowDir = $query['rootdir'].$query['showpath'];
!$nowDir && $nowDir = $rootdir;
$queryData = array();
$queryData['rootdir'] = $rootdir;

function read_dir($path){
strpos($path,'..') !== false && exit('Forbidden');
$return=array();
$return['dirs']=array();
$return['files']=array();
if(is_dir($path)){
$childs=@opendir($path);
while($child=@readdir($childs)){
if($child!="." && $child!=".." && $child!="" && $child!="Thumbs.db"){
if(is_dir("$path/$child")){
$return['dirs'][] = $child;
}else{
$return['files'][] = $child;
}
}
}
@closedir($childs);
}
count($return['dirs']) && sort($return['dirs']);
count($return['files']) && sort($return['files']);
return $return;
}
function levltext($levl){
$text='';
for($i=0;$i<$levl;$i++){
$text.='|===';
}
return $text;
}
function queryCode($query,$key=''){
//因为要把实际路径用作参数来传输,为慎瞎了安全,所以将参数加密
!$key && $key = '******'闭橘;//加密密匙
//json_encode,json_decode需要PHP 5 >= 5.2.0
if(is_array($query)){
return StrCode(json_encode($query),'ENCODE',$key);
}else{
return json_decode(StrCode($query,'DECODE',$key),TRUE);
}
}
function StrCode($string,$action='ENCODE',$key=''){
//base64+$key加解密
$string.="";
$action != 'ENCODE' && $string = base64_decode($string);
$code = '';
$key = md5($key);
$keylen = strlen($key); $strlen = strlen($string);
for ($i=0;$i<$strlen;$i++) {
$k = $i % $keylen;
$code .= $string[$i] ^ $key[$k];
}
return ($action!='DECODE' ? base64_encode($code) : $code);
}
function printTable($ePath=''){
global $showpathData,$queryData,$levl,$rootdir;
$dfData = read_dir($rootdir.'/'.$ePath);
$_tDir = $showpathData[$levl];
$levl++;
$levltext = levltext($levl);
foreach($dfData['dirs'] as $_dir){
$queryData['showpath'] = $ePath.'/'.$_dir;
$queryString = queryCode($queryData);
$ext = ($_dir == $_tDir)?'--':'++';
?>
<tr>
<td><?php echo $levltext.$ext;?><a href="?<?php echo $queryString;?>"><?php echo $_dir;?></a></td>
</tr>
<?php
if($_dir == $_tDir){
printTable($ePath.'/'.$_dir);
}
}
foreach($dfData['files'] as $_file){
?>
<tr>
<td><?php echo $levltext;?><?php echo $_file;?></td>
</tr>
<?php
}
}
//=======================================================================
print <<<EOT
<form action='' method=get>
当前打开:{$nowDir}<br>
主路径:<input value="$rootdir" name='rootdir' size=70>
<input type=submit>
</form>
<hr>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><b>路径</b></td>
</tr>
EOT;
printTable();
print <<<EOT
</table>
EOT;
?>

热点内容
java微信公众号开发 发布:2024-11-02 04:35:29 浏览:586
php对象转为数组 发布:2024-11-02 04:33:45 浏览:719
阿里云启动服务器 发布:2024-11-02 04:31:51 浏览:110
数控编译错误802怎么解决 发布:2024-11-02 04:31:42 浏览:320
linux如何安装驱动 发布:2024-11-02 04:30:18 浏览:490
云服务器项目实施方案 发布:2024-11-02 04:26:00 浏览:246
写入存储 发布:2024-11-02 04:20:21 浏览:30
JavaString替换 发布:2024-11-02 04:14:29 浏览:560
百度查询脚本 发布:2024-11-02 04:14:22 浏览:99
阴阳师ios如何登录安卓 发布:2024-11-02 04:03:03 浏览:708