php 目录列出所有文件
在php中有很多方法来把目录所有文件列出的代码,用e
*/
$list = scandir(".");
$zipname = "";
foreach($list as $file)
{
if($file=="."||$file=="..")continue;
$b=substr($file,-3);
if($b==".gz"||$b==".fz")
{ $zipname = $file; break; }
}
//代码二
$d=dir(".");
echo $d->path.$e;
while(false !== ($e= $d->read())) {
echo "<a href=$e target=_blank >$e</a>"."<br>";
}
$d->close();
//最简单的方法
$dirs = array();
foreach(glob("test/*") as $d)
{
if(is_dir($d))
{
$dirs[] = $d;
}
}
print_r($dirs);
//方法四
glob("test/*", glob_onlydir) ;
//方法五
function clean_dir($path) {
if (!is_dir($path)) {
if (is_file($path)) {
unlink($path);
}
return;
}
$p=opendir($path);
while ($f=readdir($p)) {
if ($f=="." || $f=="..") continue;
clean_dir($path.$f);
}
rmdir($path);
return;
}
+-----------------------------------------------------------------------
| 文件概要:分页显示函数
| 文件名称:page.php
| 创建时间:2010-5-20
+-----------------------------------------------------------------------
*/
function _pageft($totle, $displaypg = 20, $url = '') {
global $page, $firstcount, $pagenav, $_server;
$globals["displaypg"] = $displaypg;
if (!$page)
$page = 1;
if (!$url) {
$url = $_server["request_uri"];
}
//url分析:
$parse_url = parse_url($url);
$url_query = $parse_url["query"]; //单独取出url的查询字串
if ($url_query) {
$url_query = preg_replace("/(^|&)page=$page/", "", $url_query);
$url = str_replace($parse_url["query"], $url_query, $url);
if ($url_query)
$url .= "&page";
else
$url .= "page";
} else {
$url .= "?page";
}
$lastpg = ceil($totle / $displaypg); //最后页,也是总页数
$page = min($lastpg, $page);
$prepg = $page -1; //上一页
$nextpg = ($page == $lastpg ? 0 : $page +1); //下一页
$firstcount = ($page -1) * $displaypg;
//开始分页导航条代码:
$pagenav = "显示第 <b>" . ($totle ? ($firstcount +1) : 0) . "</b>-<b>" . min($firstcount + $displaypg, $totle) . "</b> 条记录 共 <font color='red'>$totle</font> 条留言";
//如果只有一页则跳出函数:
if ($lastpg <= 1)
return false;
$pagenav .= " <a href='$url=1'>首页</a> ";
if ($prepg)
$pagenav .= " <a href='$url=$prepg'>前页</a> ";
else
$pagenav .= " 前页 ";
if ($nextpg)
$pagenav .= " <a href='$url=$nextpg'>后页</a> ";
else
$pagenav .= " 后页 ";
$pagenav .= " <a href='$url=$lastpg'>尾页</a> ";
//下拉跳转列表,循环列出所有页码:
$pagenav .= " 到第 <select class='border:1px solid #98ccfa;' name='topage' size='1' onchange='window.location="$url="+this.value'>n";
for ($i = 1; $i <= $lastpg; $i++) {
if ($i == $page)
$pagenav .= "<option value='$i' selected>$i</option>n";
else
$pagenav .= "<option value='$i'>$i</option>n";
}
$pagenav .= "</select> 页 共 <font color='red'>$lastpg</font> 页";
}
?>
$fz = new fmzip;
$fz->setzipname("打包文件名");
#打包/压缩
$fz->setsource("待打包目录");
$fz->compress($silent,$compress);
#解包/解压
$fz->settarget("待解包目录");
$fz->uncompress($silent);
*/
class fmzip
{
var $source; //压缩源
var $target; //解压目的文件夹
var $zipname;//压缩文件名
var $handle; //打开压缩文件的句柄
var $silent; //是否输出
var $count_dir; //计数器_文件夹
var $count_file;//计数器_文件
var $dirlist;
function setsource($source)//设置压缩源
{
if(!file_exists($source))
die("source <$source> does not exist.");
$this->source = $source;
}
function settarget($target)//设置解压目的文件夹
{
if(!file_exists($target))
$this->makedir($target);
chdir(dirname($_server['script_filename']));
if(substr($target,-1)=="/")
$target = substr($target,0,strlen($target)-1);
if(!file_exists($target))
{
die("target <$target> does not exist.");
}
$this->target = $target;
}
function setzipname($zipname)//设置压缩文件名
{
if(empty($zipname)) $zipname = "fmzip.fz";
$this->zipname = $zipname;
}
function compress($silent = false, $compress = true) //压缩
{
$this->silent = $silent;
if($silent===false)echo "<pre>compressing...rn";
if(is_file("$this->zipname"))unlink("$this->zipname");
$this->handle = fopen($this->zipname,"w");//创建压缩文件
if($this->handle == null) die("error creating $this->zipname");//打开失败
$this->count_dir = 0; $this->count_file = 0; //初始化计数器
$this->merge($this->source);//压缩
fwrite($this->handle,"-1");//结束标志
fclose($this->handle);//关闭文件
echo "rndirectory: $this->count_dir";
echo "rnfile: $this->count_filern";
if(function_exists("gzcompress") && $compress==true)
{
file_put_contents("$this->zipname.gz",gzcompress(file_get_contents("$this->zipname")));
unlink("$this->zipname");
}
if($silent===false)
{
echo $this->listfile();
echo "</pre>";
}
}
function listfile()
{
if(file_exists("$this->zipname.gz"))
return "<a href="$this->zipname.gz" target="_blank">download $this->zipname.gz</a>";
if(file_exists("$this->zipname"))
return "<a href="$this->zipname" target="_blank">download $this->zipname</a>";
}
function merge($dir)//合并文件、文件夹(递归)
{
/* 说明:不处理link。 */
if(is_dir($dir))//如果压缩源是文件夹
{
$list = scandir($dir);//扫描文件列表
natcasesort($list);
foreach($list as $file)//先处理文件夹
{
$full = "$dir/$file";
if(!is_dir($full)||$file=="."||$file=="..")continue;//只处理文件夹
$this->count_dir++;
if($this->silent===false)
echo "[dir] $fullrn"; //输出提示
fwrite($this->handle,$this->file_info($full));//写入文件夹信息
$this->merge($full);//递归合并下级文件夹
}//文件夹处理完毕;
foreach($list as $file)//处理文件
{
$full = "$dir/$file";
if(!is_file($full)||$file=="."||$file=="..")continue; //只处理文件
$this->count_file++;
if($this->silent===false)
echo "[file] $fullrn";//输出提示
fwrite($this->handle,$this->file_info($full));//写入文件信息
}//文件处理完毕
}
else
{
$this->count_file++;
if($this->silent===false)echo "[file] $fullrn";//输出提示
fwrite($this->handle,$this->file_info($file));//写入文件信息
}
}//end function merge
function file_info($file)
{
$perm = substr(sprintf('%o',fileperms($file)), -3); //权限
$filename = str_replace($this->source,"",$file);
if(is_file($file))//文件
{
$size = filesize($file); //文件大小
return "1rn$filenamern$permrn$sizern".file_get_contents($file)."rn";// .文件内容
}
if(is_dir($file))//目录
return "0rn$filenamern$permrn";
}//end function file_info
function uncompress($silent = false)
{
$this->silent = $silent;
if($silent===false)echo "<pre>uncompressing...rn";
if(substr($this->zipname,-3)==".gz")
$this->zipname = substr($this->zipname,0,strlen($this->zipname)-3);
if(file_exists("$this->zipname.gz"))
{
if(!function_exists(gzuncompress))
die("function gzuncompress is not supported. unable to continue.");
file_put_contents($this->zipname,gzuncompress(file_get_contents("$this->zipname.gz")));
}
$this->handle = fopen($this->zipname,"r");
if($this->handle == null) die("error reading $this->zipname");//打开失败
$count = 0;
while(1)
{
$count ++;
$type = $this->read_line(); //读取类型
if($type === "-1")break;//处理完毕,退出
$filename = $this->target.$this->read_line();//读取文件名
$permission = $this->read_line();//读取权限
/* <文件夹> [0]n[file_name]n[perm]n */
if($type === "0")//目录
{
if($this->silent === false)//输出提示
echo "[dir] $filename [$permission]rn";
$this->makedir($filename);//创建文件夹
chdir(dirname($_server['script_filename']));
chmod($filename,$permission);
$this->dirlist[$filename] = 1;
continue;
}
/* <文件> [1]n[file_name]n[perm]n[size]n[contents]n */
if($type === "1")//文件
{
$this->count_file++;
$size = $this->read_line(); //读取文件大小
if($this->silent === false)//输出提示
echo "[file] $filename [$permission] [size = $size]rn";
if($size!=0)
{
$fp = fopen($filename,"w");
$contents = fread($this->handle,$size);
fwrite($fp,$contents);
fclose($fp);
chmod($filename,$permission);
}
$this->read_line();//内容后的一个回车
continue;
}
}
$this->count_dir = count($this->dirlist);
if($silent===false)
echo "ndirectory: $this->count_dir";
echo "nfile: $this->count_filen</pre>n";
fclose($this->handle);
if(file_exists("$this->zipname.gz"))unlink("$this->zipname");
}//end function uncompress;
function read_line()
{
$a = fgets($this->handle);
$a = str_replace("rn","",$a);
$a = str_replace("n","",$a);
return $a;
}
function makedir($full)
{
list($a,$b) = split("/",$full,2);
if($a == "") return;
if(file_exists($a)&&!is_dir($a))die("can't create dir $a");
if(!file_exists($a))@mkdir($a);
chdir($a);
if($b!=="")
$this->makedir($b);
chdir("..");
}//end function makedir
} //end class fmzip
/*
使用方法:
#必须
include("包含这个class的php文件");
$fz = new fmzip;
$fz->setzipname("打包文件名");
#打包/压缩
$fz->setsource("待打包目录");
$fz->compress($silent,$compress);
#解包/解压
$fz->settarget("待解包目录");
$fz->uncompress($silent);
$silent : true|false (不加引号!) 是否产生输出 默认为true,不产生
$compress : true|false (不加引号!) 是否压缩 默认为true,压缩
$res=mysql教程_query("select k1,k2 from ".table('keywords')." ") ;
$str="<?php rn ";
while($rs=mysql_fetch_array($res))
{
$str .="$keyword['".$rs[0]."']='".$rs[1]."';rn";
}
$str.="?>";
file_put_contents("keyword.php",$str);
echo "导出成功";
//方法二
$f=file_get_contents("w1.txt");
$f=str_replace("rn","<br>",$f);//替换换行符
$arr=explode("<br>",$f);
$str="<?php rn ";
foreach($arr as $t)
{
$rs=explode("|",$t);
//不能包含?等特殊符号
$str .="$keyword['".str_replace("?","",$rs[0])."']='".str_replace("?","",$rs[1])."';rn";
}
$str.="?>";
file_put_contents("keyword.php",$str);
echo "导出成功";
//conn.php文件
$conn=mysql_connect($mysql_host,$mysql_user,$mysql_password) or die('连接服务器出错');
mysql_select_db($mysql_db) or die("选择数据库出错");
mysql_query("set names 'gbk'");
function table($t)
{
global $mysql_table_prefix;
return $mysql_table_prefix.$t;
}
?>
database config
*/
代码如下 | 复制代码 |
$db_host = 'localhost'; $link = mysql_connect($db_host,$db_user,$db_pass) or die('unable to establish a db connection'); mysql_select_db($db_database,$link);
$comment = mysql_real_escape_string(nl2br(strip_tags($_post['comment']))); $addon=''; mysql_query("insert into wave_comments set usr='".$user."', comment='".$comment."', dt=now()".$addon); if(mysql_affected_rows($link)==1) |
sql
--
-- table structure for table `wave_comments`
--
create table `wave_comments` (
`id` int(11) not null auto_increment,
`parent` int(11) not null default '0',
`usr` varchar(16) collate utf8_unicode_ci not null default '',
`comment` text collate utf8_unicode_ci not null,
`dt` datetime not null default '0000-00-00 00:00:00',
primary key (`id`),
key `parent` (`parent`,`id`)
) engine=myisam default charset=utf8 collate=utf8_unicode_ci;
--
-- dumping data for table `wave_comments`
--
insert into `wave_comments` values(1, 0, 'tutorialzine', 'this is a demo for a tutorialzine tutorial about creating a google wave-like history slider.<br /><br />rnto get started, just drag the slider above, and this thread will be reverted to a past state.', '2009-10-24 03:58:08');
insert into `wave_comments` values(2, 0, 'curious', 'is html allowed in the comments?', '2009-10-24 03:59:44');
insert into `wave_comments` values(3, 2, 'tutorialzine', 'nope. also the messages in this demo are deleted every hour to prevent spamming.', '2009-10-24 04:00:15');
insert into `wave_comments` values(4, 1, 'tutorialzine', 'in this tutorial we are using <b>php</b>, <b>mysql</b>, <b>jquery</b> and <b>css教程</b>. the slider was created with <b>jquery ui</b>. <a href="http://111cn.net/2009/10/google-wave-history-slider-jquery/" target="_blank">view the tutorial</a>.', '2009-10-24 04:01:34');
insert into `wave_comments` values(5, 2, 'curious', 'thanks! also i noticed that you can click, rather than drag the slider.great!', '2009-10-24 04:11:48');
相关文章
- 下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
Jupyter Notebook读取csv文件出现的问题及解决
这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06- 今天小编就为大家分享一篇解决Pycharm的项目目录突然消失的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-22
- 有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
- 这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25- 要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- 今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
- 这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
- 步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
- 本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
ant design中upload组件上传大文件,显示进度条进度的实例
这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29- 这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
- 举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
- 这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 通常php.ini的位置在:复制代码 代码如下:/etc目录下或/usr/local/lib目录下。如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法:1.新建php文件,写入如下代码复制代码 代码如下:<?phpe...2014-05-31