聽起來有些暈吧?!!使用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."";
"; *
//替換原有行的數據
} //重新整理後的數據
$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文件當中的變量。當然這是一種比較笨的方法(誰讓俺也是笨人)。這種需求還有很多種實現方式。
其中*標記的一行當中,我們用到轉義字符,這個說起來很簡單,但是我測試的時候由於方法不得當倒是浪費了不少時間。現在把轉義字符表貼在下面:
轉義字符 序列含義
換行(LF 或 ASCII 字符 0x0A(10))
回車(CR 或 ASCII 字符 0x0D(13))
水平制表符(HT 或 ASCII 字符 0x09(9))
\ 反斜線
$ 美元符號
" 雙引號
[0-7]{1,3} 此正則表達式序列匹配一個用八進制符號表示的字符
x[0-9A-Fa-f]{1,2} 此正則表達式序列匹配一個用十六進制符號表示的字符
單就處理字符串而言,使用單引號要比使用雙引號速度要快,所以你要在你的程序中選擇適當的引號。