php递归遍历之遍历文件夹下的所有文件和子文件
写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
代码如下 | 复制代码 |
$dirs='e:/pdf'; function FileShow($dirs) { $dir=opendir($dirs); while ($f=readdir($dir)) { if($f != '.' && $f != '..'){ $file=$dirs.'/'.$f; if(is_file($file)){ echo 'FileName:'.$file.'<br />'; //echo 'FileName:'.iconv('gb2312','utf-8',$file).'<br />'; }else{ FileShow($file); } } } } FileShow($dirs); |
调用mt_rand()这个方法可以生成随机数字,参数是范围的最小值和最大值,函数会返回最小值和最大值之间的一个随机数字。
要生成真正的随机数,对于计算来说不是一件容易的事。
php中两种方法可以生成随机数,一个经典的函数叫rand(),另一个更出色的函数是mt_rand()。
例1
代码如下 | 复制代码 |
或者 <?php |
例2
代码如下 | 复制代码 |
srand((double)microtime()*1000000); |
例3
代码如下 | 复制代码 |
/** |
一:更推荐这种方法,因为它可以把www.111cn.net原来所有的url都转到111cn.net新的地址上
代码如下 | 复制代码 |
<?php $the_host = $_SERVER['HTTP_HOST']; $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; if($the_host == 'www.111cn.net') { header('HTTP/1.1 301 Moved Permanently'); header('Location: http://111cn.net'.$request_uri);// } ?> |
二:单页多站的Php301重定向代码,www.111cn.net和111cn.net则301到index.php上,www.111cn.net则301到111cn.net上,否则转到错误页
代码如下 | 复制代码 |
if(($HTTP_HOST=="www.111cn.net")or($HTTP_HOST=="111cn.net")) |
附上其它跳转办法
代码如下 | 复制代码 |
//定义编码 //Atom //CSS //Javascript //JPEG Image //JSON //PDF //RSS //Text (Plain) //XML // ok //设置一个404头: //设置地址被永久的重定向 //转到一个新地址 //文件延迟转向: //当然,也可以使用html语法实现 // override X-Powered-By: PHP: //文档语言 //告诉浏览器最后一次修改时间 //告诉浏览器文档内容没有发生改变 //设置内容长度 //设置为一个下载类型 // 对当前文档禁用缓存 //设置内容类型: //显示登陆对话框 |
跳转要注意以下几点,有助于解决一些新手经常遇到的问题
1、location和“:”号间不能有空格,否则会出错。
2、在用header前不能有任何的输出。
3、header后的PHP代码还会被执行。
php把数组写入文件,通过序列和反序列实现。请看代码
$file="./data/file.cache";
file_put_contents($file,serialize($array));//写入缓存
代码如下 | 复制代码 |
<?php <? |
//将一个测试的数组写入一个PHP文件:
代码如下 | 复制代码 |
<?php //要写入PHP文件的数组 $write_array = array( '1' => 'oneone', '2' => 'two', '3' => 'three', '4' => 'four', '5' => 'five' ); //字符串处理 |
这里用到了两个函数:
代码如下 | 复制代码 |
1,var_export(): |
·var_export — 用来输出或返回一个变量的字符串表示,它和 var_dump() 的区别是,var_export() 可以用来返回关于传递给该函数的变量的结构信息,并且其返回的表示是合法的 PHP 代码如果 “echo $string_process;”,则可以看到输出结果:
代码如下 | 复制代码 |
array ( 1 => 'oneone', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', ) |
而它就是我们要写入 test_array.php 文件的内容(除去 php 标签);
·var_dump() 函数用来打印变量的相关信息,它只用来“打印”,而不会返回值,它的原型是 void var_dump(……),我们来 “var_dump($string_process);”,则可以看到输出结果:
代码如下 | 复制代码 |
string(86) "array ( 1 => 'oneone', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', )" |
可以看到输出的string(86) “…”,再一次说明了 var_export() 返回的是一个字符串。
在做内容站时,经常会用到采集软件在互联网上大肆侵略别站的资源,一采集就是几千篇的文章,采集之后 发现内容中有些原站点的超级链接,要是一个个去改的话 很麻烦 所以写了个方法,测试成功。简单说一下原理,这里重利用的是 PHP 的替换函数 preg_replace,在实际应用中,我们经常使用 preg_replace 去替换一些危险字符或去转换一些斜杠或回车等。preg_replace($1,$2,$3) 有三个重要的参数,其中 $1 是要搜索的字符串,$2 是要替换成的字符串,$3 是要进行替换的字符串。
那么知道了 preg_replace 函数工作的原理,那么进行替换超链接就不难了,我们只需要将参数 $1 和 $2 转换成数组,进行批量替换,以下是方法,测试成功,共享给 phper 。
代码如下 | 复制代码 |
<?php |
或
代码如下 | 复制代码 |
<?php $content = file_get_contents('test.html'); $url = 'http://www.111cn.net'; //要换成的新网址 $preg = '/[s]href=("|')[S]*("|')/i'; $replace = ' href="' . $url . '"'; $content = preg_replace($preg, $replace, $content); //正则替换 create_log('newhtml', $content); //生成新文件 ?> |
都是可以的
相关文章
- 下面我来给大家推荐一个网友写的php递归遍历之遍历文件夹下的所有文件和子文件实例代码,希望对各位朋友有所帮助。 写一个函数,能够遍历一个文件夹下的所有文件...2016-11-25
- 这篇文章主要介绍了 Python与C++ 遍历文件夹下的所有图片实现代码的相关资料,需要的朋友可以参考下...2020-04-25
- PHP本身自带的有一个readdir的函数,不过只能读取当前的目录,根据这个函数,我写了另外一个函数,用来实现我的需求。函数的原理很简单,主要就是用了一下递归调用。 ...2016-11-25
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
这篇文章主要介绍了node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小的相关资料,需要的朋友可以参考下...2017-01-23- 这篇文章主要介绍了java栈实现二叉树的非递归遍历,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-21
- 一个朋友写的一款目录查找程序,可以根据用户输入的目录名称查到到指定目录或文件,同时还支持锁定目录哦,有需要的朋友可以参考一下。 代码如下 复制代码 ...2016-11-25
- 这篇文章主要介绍了VBS遍历文件或文件夹路径输入文件的所有绝对路径的代码,需要的朋友可以参考下...2020-06-30
- 这篇文章主要介绍了PHP递归遍历多维数组实现无限分类的方法,涉及PHP递归操作遍历数组的相关技巧,在联动菜单及父子栏目设计等方面非常具有实用价值,需要的朋友可以参考下...2016-05-10
- 这篇文章主要介绍了go语言遍历文件夹示例,本文直接给出实现代码,需要的朋友可以参考下...2020-05-07
- 本篇文章是对linux中遍历文件夹下的所有文件进行了详细的分析介绍,需要的朋友参考下...2020-04-25
- 这篇文章主要介绍了C语言 实现遍历一个文件夹的所有文件的相关资料,需要的朋友可以参考下...2020-04-25
- 本篇文章是对二叉树的非递归遍历进行了详细的分析介绍,需要的朋友参考下...2020-04-25
- 本篇文章是对遍历二叉树的各种操作进行了详细的分析介绍,需要的朋友参考下...2020-04-25
- 这篇文章主要介绍了C++遍历文件夹下所有文件的多种方法,需要的朋友可以参考下...2020-04-25
- 在递归扫描文件夹树的问题上,还是 Glob 函数的表现好一点,很准确的说。 > Scandir 函数会莫名其妙扫描两次 ../ 处的文件,也就是说如果小邪有俩文件。 > ../b.ph...2016-11-25
- 他们利用了递归的方法来实例目录遍历,可以查找出无限级目录的文件与文件夹中的文件并显示,下面是实例代码 <?php教程 $dir = 'f:game'; function read_dir_all($dir...2016-11-25
- 在本篇文章里小编给大家整理的是一篇关于C++ 递归遍历文件并计算MD5的实例代码,有兴趣的朋友们可以学习参考下。...2021-07-19
- 在一般的PHP面试中,有很多都会问及这样的一个问题:写一个能遍历指定文件夹下所有文件和文件夹的方法。下面我们就来汇总下,希望对大家能够有所帮助...2017-03-12