【PHP5函數】
https://segmentfault.com/a/11...
本次要實現與上篇文章中同樣效果的案例,即'百度一下'變爲'Lin一下'.php
但這次使用的是php5的新增函數,較爲推薦的:html
file_get_contents() //獲取文件或遠程地址的所有內容:本質fopen(),fread(),fclose() file_put_contents() //把數據存儲爲文件,但任意類型的數據存儲後再次讀取,都將是字符串:本質fopen(),fwrite(),fclose()
如上是我拎出來的方法,以下是手冊中的詳細說明(太詳細,有點duo,儘可能講白話。。。)segmentfault
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'));
效果展現app
不想展現,本地存儲怎麼破?函數
<?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首頁google
【文件遍歷】
直接上函數編碼
/** * 讀取文件夾下的全部文件 * @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');
效果實現spa
【文件下載】
瀏覽器會盡量的解析,能解析的就直接輸出,不能解析的就會如下載的方式來處理.firefox
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