解析PHP留言本模块主要功能的函数说明(代码可实(2)


<?php
 $fp=fopen("filterwords.txt","r");
?>


(3)fseek()函数
fseek()函数用于设置文件指针的位置
语法:int fseek(resource handle,int offset[,int whence])
参数:
handle:
必要参数。打开某文件后返回的文件标识
offset:必要参数。用于设定文件指针的位置
whence:可省参数。
fessk()函数的whence参数说明
seek_set:设置位置等于offset个字节。该值为该参数的默认值
seek_cur:设置位置等于当前位置加上offset个字节
seek_end:设置位置等于文件尾加上offset个字节
例如,应用fopen()函数打开文件“test.txt”,然后读取该文件4096个字节的内容,最后应用fseek()函数将文件指针恢复到原位置。

复制代码 代码如下:


<?php
 $fp=fopen("filterwords.txt","r"); //以只读方式打开某文件
 $data=fgets($fp,4096); //读取文件中一行4096个字节的内容
 fseek($fp,0);  //使文件指针指向第0个字节的位置
?>


string fgets(int handle[,int length])
从handle指向的文件中读取一行并返回长度最多为length - 1字节的字符串。碰到换行符(包括在返回值中)、EOF或者已经读取了length- 1字节后停止(看先碰到那一种情况)。如果没有指定length,则默认为1K,或者说1024字节。(考虑到程序执行效率,一般还是选用某一固定长度值)
(4)fwrite()函数
fwrite()函数用于将字符串写入指定的文件中,并可以规定写入字节的大小。
语法:int fwrite(resource handle,string string[,int length])
参数说明:
handle:
必要参数。文件标识指针
string:必要参数。要写入某文件的字符串
length:可省参数。指写入文件的长度,如果省略该参数则将指定字符串的所有内容写入文件中
例如:fwrite()函数将字符串“PHP留言本”写入filterwords.txt文件中

复制代码 代码如下:


<?php
 $fp=fopen("filterwords.txt","w+");
 $str="PHP留言本";
 if(fwrite($fp,$str)){
  echo "文件写入成功!";
 }else{
  echo "文件写入失败";
 }
?>


(5)fclose()函数
fclose()函数用于关闭指定的文件标识所指的文件。
语法:bool fclose(resource handle)
参数handle为fopen()函数或fsockopen()函数成功打开某文件后所返回的文件标识。
在留言本模块中,通过以上介绍的函数实向文本文件“filterwords.txt”中添加敏感词的功能。

复制代码 代码如下:


<?php
 if($_POST){
  $filename="../filterwords.txt";
  if(is_writable($filename)){
   $file=fopen($filename,'r+');   //读写方式打开,将文件指针指向文件头。
  }
  else{
   echo "文件".$filename."不可写";
  }
  //在文件尾写文件
  fseek($file,0,SEEK_END); //设置指针位置,SEEK_END设置位置等于文件尾加上offset(这里为零)个字节
  $word=$_POST[txt_word];
  fwrite($file,$word);
  fwrite($file,"\r\n");
  fclose($file);
 }
?>


3,读取文件中的敏感词

复制代码 代码如下:


<?php
 $filename="../filterwords.txt";
 if(is_readable($filename)){
  $arr=file($filename);
 }
 else{
  echo "文件".$filename."不可读";
 }
 while(list($name,$value)=each($arr)){   //遍历数组
  $a.="$value".",";
 }
 echo "<br>敏感词如下:<br>".$a;
?>


(1)is_readable()判断文件是否存在,并且是否可读,如果满足上述条件则返回True
语法:bool is_readable(string filename),参数filename用于指定文件的完整路径
(2)void list(mixed...)
像array()一样,这不算真正的函数,而是语言结构。list()用一步操作给一组变量进行赋值。list()仅能用于数字索引的数组并假定数字索引从0开始.
例如:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/7bfefcbc0d74e2d8b624d5f62ecadecd.html