PHP網(wǎng)站制作公告留言系統(tǒng)怎樣添加敏感詞,在深圳網(wǎng)站制作公司的開發(fā)系統(tǒng)中,敏感詞匯可以由管理員自定義設(shè)置。在后臺(tái)的添加敏感詞頁面中添加敏感詞匯,將其寫入文本文件中,從而完成自定義敏感詞匯的功能。向文本文件添加敏感詞匯的效果如圖22.7所示。
在PHP中向文本文件寫入字符串主要用到下面5個(gè)函數(shù)。
★ is_writable()函數(shù)is_writable()函數(shù)用于判斷某文件是否存在,并且是否可寫,如果滿足條件則返回true,否則返回false?;菊Z法如下:boolis_writable(string$filename)
filename參數(shù)可以是一個(gè)允許進(jìn)行是否可寫檢查的目錄名。示例代碼如下:
<?php
$filename='test.txt';
if(is_writable($filename)){
echo'當(dāng)前文件可寫';
}else{
echo'當(dāng)前文件不可寫';
}
?>
★ fopen()函數(shù)fopen()函數(shù)用于打開某文件,并返回該文件的標(biāo)識(shí)指針。該文件可以是本地文件,也可以是遠(yuǎn)程文件,通過URL指定。如果打開失敗,則函數(shù)返回false?;菊Z法如下:
resourcefopen(string$filename,string$mode[,bool$use_include_path[,resource$zcontext]])參數(shù)說明如下。
★ filename:必要參數(shù)。用于指定要打開文件的本地地址。
★ mode:必要參數(shù)。用于指定要打開文件的模式。
★ use-include-path:可選參數(shù)。如果將該參數(shù)設(shè)置為true,PHP會(huì)嘗試按照include_path標(biāo)淮包含路徑中的每個(gè)指向去打開文件。
★ context:可選參數(shù)。設(shè)置提高文件性能的一些選項(xiàng)。
【示例1】使用fopen()函數(shù)以不同的方式打開不同位置的文件,代碼如下:
<php
$handle=fopen("/home/rasmus/file.txt","r");
$handle=fopen("/home/rasmus/file.gif","wb");
$handle=fopen("http://www.example.com/","r");
$handle=fopen("ftp://user:password@example.com/somefile.txt","w");
?>
★ fseek()函數(shù)
fseek()函數(shù)用于設(shè)置文件指針的位置?;菊Z法如下:intfseek(resource$handle,int$offset[,int$whence])參數(shù)說明如下。
★ handle:必要參數(shù)。打開某文件后返回的文件標(biāo)識(shí)。
★ offset:必要參數(shù)。用于設(shè)定文件指針的位置。要移動(dòng)到文件尾之前的位置,需要給offset傳遞一個(gè)負(fù)值。
★ whence:可選參數(shù)。該參數(shù)包含值有:SEEK_SET設(shè)定位置等于offset字節(jié);SEEK_CUR設(shè)定位置為當(dāng)前位置加上offset;SEEK_END設(shè)定位置為文件尾加上offset。
【示例2】使用fopen()函數(shù)打開文件test.txt,然后讀取該文件4096個(gè)字節(jié)的內(nèi)容,最后應(yīng)用fseek()函數(shù)將文件指針恢復(fù)到原位置。<?php$fp=fopen('test.txt','r');$data=fgets($fp,4096);fseek($fp,0);?>
★ fwrite()函數(shù)
fwrite()函數(shù)用于將字符串寫入指定的文件中,并可以規(guī)定寫入字節(jié)的大小?;菊Z法如下:intfwrite(resource$handle,string$string[,int$length])參數(shù)說明如下。
★ handle:必要參數(shù)。文件標(biāo)識(shí)指針。
★ string:必要參數(shù)。要寫入某文件的字符串。
★ length:可選參數(shù)。指寫入文件的長度,如省略該參數(shù),將指定字符串的所有內(nèi)容寫入文件中。
【示例3】使用fwrite()函數(shù)將字符串寫入test.txt文件中。代碼如下:
★ fclose()函數(shù)fclose()函數(shù)用于關(guān)閉指定的文件標(biāo)識(shí)指針?biāo)傅奈募??;菊Z法如下:boolfclose(resource$handle)
參數(shù)handle為fopen()函數(shù)或者fsockopen()函數(shù)成功打開某文件后所返回的文件標(biāo)識(shí)。例如,應(yīng)用fopen()函數(shù)打開“c:/me.php",然后使用fclose()函數(shù)關(guān)閉該文件,代碼如下:<?php$handle=fopen('c:/me.php','r');fclose($handle);?>在留言板系統(tǒng)中,通過以上介紹的函數(shù)實(shí)現(xiàn)向文本文件filterwords.txt中添加敏感詞的功能。具體代碼如下(manage/word_add.php):
在開發(fā)留言板模塊的過程中,添加敏感詞是本模塊的一個(gè)重點(diǎn),也是本模塊的亮點(diǎn)。在向文本文件中寫入敏感詞匯時(shí),總會(huì)將添加的敏感詞寫到一行上,這樣在讀取敏感詞匯時(shí),就不能正確讀出敏感詞匯。為了找出問題的原因,來分析一下添加敏感詞的原理。首先,指定存儲(chǔ)敏感詞的文件,然后以寫的方式打開該文件,將指針定位到文件的末尾,寫入敏感詞,最后關(guān)閉。經(jīng)過仔細(xì)的分析,找到問題的原因,那就是在將指針定位到文件的末尾后,向文本文件中寫入敏感詞,這時(shí),指針的焦點(diǎn)仍然在當(dāng)前行的末尾,并沒有換行,所以在添加下一個(gè)敏感詞時(shí)仍然寫入到該詞的末尾,這樣就將多個(gè)敏感詞匯寫在一行上了,因此出現(xiàn)了問題。解決的方法是,在每添加一個(gè)敏感詞后,需要及時(shí)按Enter鍵換行,然后再添加下一個(gè)敏感詞。
因此,在應(yīng)用fwrite()函數(shù)寫入敏感詞后,添加這樣一條語句。fwrite($file,"\r\n");在應(yīng)用以上方法添加敏感詞后,該問題迎刃而解。好了,網(wǎng)站制作公司本文關(guān)于“PHP網(wǎng)站制作公告留言系統(tǒng)怎樣添加敏感詞”的知識(shí)就分享到這里,謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。