【PHP5函数】
https://segmentfault.com/a/11...
本次要实现与上篇文章中一样效果的案例,即'百度一下'变为'Lin一下'.
但此次使用的是php5的新增函数,较为推荐的:
file_get_contents() //获取文件或远程地址的全部内容:本质fopen(),fread(),fclose()
file_put_contents() //把数据存储为文件,但任意类型的数据存储后再次读取,都将是字符串:本质fopen(),fwrite(),fclose()
如上是我拎出来的方法,如下是手册中的详细说明(太详细,有点duo,尽量讲白话。。。)
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )
代码实现
<?php
header('content-type:text/html;charset=utf-8');
echo str_replace('百度','Lin',file_get_contents('http://www.baidu.com'));
效果展示
不想展示,本地存储怎么破?
<?php
header('content-type:text/html;charset=utf-8');
$dataStr = str_replace('百度','Lin',file_get_contents('http://www.baidu.com')); //获取数据,查找替换
$savePath = './baiduIndex.txt'; //存储路径
file_put_contents($savePath,$dataStr); //数据存储为文件
效果展示:当前目录下,会生成一个baiduIndex.txt存放查找替换后的http://www.baidu.com首页
【文件遍历】
直接上函数
/**
* 读取文件夹下的所有文件
* @param string $dir 目录名
*/
function readAllFile($dir = ''){
if(!is_dir($dir)) die('非法的目录');
echo '<ul>'; //html标签在这里是为了目录输出的层次感
$r = opendir($dir); //文件读写三部曲:打开获得引用->读写->关闭资源
while(false !== ($file = readdir($r))){ //必须全等判断,以排除文件名为0,false的情况
if($file == '.' || $file=='..') continue; //无意义的输出,干掉
$file = iconv('gbk','utf-8',$file); //本地ansi是gbk的存储(chcp命令可查),输出到浏览器要转为utf-8,才不至乱码
echo '<li>'.$file.'</li>';
$file = iconv('utf-8','gbk',$file); //判断路径时,要还原编码
$path = $dir.'/'.$file;
if(is_dir($path)) readAllFile($path); //如果子文件是个目录,就递归调用
}
echo '</ul>';
closedir($r); //关闭资源
}
//调用
readAllFile('./php/fileTest');
效果实现
【文件下载】
浏览器会尽可能的解析,能解析的就直接输出,不能解析的就会以下载的方式来处理.
header('content-type:text/html;charset=utf-8'); //旨在告诉浏览器,以html方式解析Dom
那么我们可以利用http协议(header函数和响应头),告诉浏览器以怎样的方式来处理返回的数据。
这里,我们以下载为例:
<?php
header('content-type:application/octet-stream'); //1.返回:以二进制
$filename = 'down.php';
header("content-disposition:attachment;filename=$filename"); //2.处理:附件形式存储在down.php中
echo file_get_contents('one.php'); //3.输出:到浏览器
如何调用
作为一个请求地址,放到a标签,点击即可实现下载。
但如果直接运行呢?
效果实现
google
firefox
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。