php操作php文件
聽起來有些暈吧?!!使用php來操作php頁面。有一個小的用途,在一個系統當中可能會有個別的小項不便存入數據庫,但是我們又要經常在其他頁面當中調用,而且還需要更新,那么我們就可以用這種方式來解決。其中遇到幾個小問題,搞了俺半天時間才搞定
比如說:用戶需要更改某一個標題,但是單獨為這個標題在建立一個表,顯然不太合適。所以就想到,把這個變量寫入php文件當中,供其它頁面調用。name.php文件,需要的內容如下:
<?
$name='標題';
?>
'標題'這兩個字需要用戶可以更新。那么我們如何來實現:
一個簡單的提交信息頁面add_name.php
<form action='addname.php' method='post'><input type='text' name='name' size='20' /><input type='submit' value='提交' />
一個接收用戶提交信息并進行處理的頁面addname.php
<? $name=$_POST['name'];;;//接收從add_name.php傳過來的name值if(empty($name)){ //判斷是否為空?><script language='javascript'>alert('名稱不能為空!');document.location='add_name.php';</script><?}else{; $filename='name.php';//定義操作文件$delline=2;;;//要刪除的行數; if(!file_exists($filename)){;//判斷文件是否存在 die('指定文件未發現!操作中斷!');}$farray=file($filename) //讀取文件數據到數組中for($tmpa=0;$tmpa<count($farray);$tmpa++){ if(($tmpa+1)==2){;//判斷行數 $farray[$tmpa]='$name2='.'''.$name.'';n';;;* //替換原有行的數據 };//重新整理后的數據 $newfp.=$farray[$tmpa]; }$fp=@fopen($filename,'w') or die('寫方式打開文件 $filename 失敗');
//我們以寫的方式打開文件
@fwrite($fp,$newfp) or die('文件寫入失敗');
@fclose($fp);關閉文件}?>
這段代碼只是做測試用117-202 1Z0-043 1z0-042; 。寫的不規范的地方倒是貽笑大方了!
這樣我們就可以用來更新name.php文件當中的變量。當然這是一種比較笨的方法(誰讓俺也是笨人)。這種需求還有很多種實現方式。
其中*標記的一行當中,我們用到轉義字符,這個說起來很簡單,但是我測試的時候由于方法不得當倒是浪費了不少時間。現在把轉義字符表貼在下面:
轉義字符 序列含義 n;;;換行(LF 或 ASCII 字符 0x0A(10)) r;;;回車(CR 或 ASCII 字符 0x0D(13)) t;;;水平制表符(HT 或 ASCII 字符 0x09(9)) ;;;反斜線 $;;;美元符號 ';;;雙引號
[0-7]{1,3} 此正則表達式序列匹配一個用八進制符號表示的字符x[0-9A-Fa-f]{1,2} 此正則表達式序列匹配一個用十六進制符號表示的字符
單就處理字符串而言,使用單引號要比使用雙引號速度要快,所以你要在你的程序中選擇適當的引號。
