下面我們利用幾個實例來總結了利用php fopen函數來實現文件的讀寫操作,有需要學習的朋友可參考參考.
簡單的參考fopen函數fopen() 函數打開文件或者 URL.
如果打開失敗,本函數返回 FALSE.
語法
fopen(filename,mode,include_path,context)
創建一個文件的實例代碼如下:
- <?php
- if(!file_exists("test.txt")){ //如果文件不存在(默認為當前目錄下)
- $fh = fopen("test.txt","w");
- fclose($fh); //關閉文件
- }
- ?>
利用php的讀寫文本文檔的功能來實現修改和編輯robots文件實例代碼如下:
- <?php
- function get_txt($robots_file)
- //定義函數,內容用{}括起來
- {
- if(file_exists($robots_file))
- //如果文件存在,讀取其中的內容
- {
- $fp=@fopen($robots_file,"r");
- //r是read的縮寫,代表讀取的意思,以只讀方式打開文件
- if ($fp) {
- while (!feof($fp)) { //如果沒有到文件尾部
- $robots_txt = fgets($fp, 4096); //逐行讀取
- $robots_all = $robots_all.$robots_txt; //將數據保存到$robots_all里面
- }
- return($robots_all); //返回所有內容
- fclose($fp); //關閉文件
- }
- }
- }
- function put_txt($robots_txt)
- {
- $fp=fopen("robots.txt","w");
- //w是write的縮寫,代表寫入的意思,以寫入的方式打開文件
- fputs($fp,$robots_txt);
- //輸出文本到文件
- fclose($fp);
- }
- ?>
- <?php
- $edit=$_GET["edit"];
- $txt=$_POST["txt"];
- $get_txt=get_txt("robots.txt");
- //調用剛才定義的函數打開robots文件.
- if($edit=="write")
- {
- put_txt($txt);
- echo "成功保存 <a href=robots-editer.php>返回</a>";
- }
- else
- {
- echo "成功讀取<a href=robots.txt target=_blank>robots.txt</a> <a href=writer.php>返回</a>";
- }
- ?>
- <?php
- if($edit=="")
- {
- ?>
- <form name="form1" action="?edit=write" method="post">
- <textarea name="txt" cols="160" rows="30"><?php echo $get_txt; ?></textarea>
- <br />
- <input name="submit" value="保存" type="submit" />
- </form>
- <?php
- }
- ?>
通過PHP讀取文本文檔counter.txt里的數據,并+1保存到文本文檔中.
新建counter.php文檔,輸入如下代碼,跟ASP不同的是PHP里的單行注釋是用//或者#,多行注釋用/* */來實現:
實例代碼如下:
- <?php
- function get_hit($counter_file)
- //定義函數,內容用{}括起來,學過編程的人應該看出來了,跟C語言有點相似
- {
- $count=0;
- //將計數器歸零,Php里的變量前面加上$號
- if(file_exists($counter_file))
- //如果計數器文件存在,讀取其中的內容
- {
- $fp=fopen($counter_file,"r");
- //r是read的縮寫,代表讀取的意思,以只讀方式打開文件
- $count=0+fgets($fp,20);
- /*讀取前20位數賦值給count變量,由于fgets()函數讀取的是字符串,所以需要在前面+0來轉換為整數,
- 這一點跟ASP就不同了,ASP中字符串可以直接跟整型進行運算,而不用轉換.*/
- fclose($fp);
- //關閉文件
- }
- $count++;
- //增加計數,這一點跟C就非常相似了
- $fp=fopen($counter_file,"w");
- //w是write的縮寫,代表寫入的意思,以寫入的方式打開文件
- fputs($fp,$count);
- //輸出計數值到文件
- fclose($fp);
- return($count);
- //返回計數值
- }
- ?>
- <?php
- $hit=get_hit("counter.txt");
- //調用剛才定義的函數處理counter.txt文檔,并把結果賦值給hit變量.
- echo "您是第<b>"."$hit"."</b>位訪客!";
- //輸出結果.PHP與ASP的區別在于:ASP的連字符是“&”,而Php的連字符是“.”.
- ?>
同樣在需要調用的PHP文檔中插入這個文件:
<?php include("counter.php");?>
新聞熱點
疑難解答