fseek($fp,-5,SEEK_END);
int fseek ( resource handle, int offset [, int whence])
在与 handle 关联的文件中设定文件指针位置。新位置,从文件头开始以字节数度量,是以 whence 指定的位置加上 offset。whence 的值定义为: 
SEEK_SET - 设定位置等于 offset 字节。 
SEEK_CUR - 设定位置为当前位置加上 offset。 
SEEK_END - 设定位置为文件尾加上 offset。(要移动到文件尾之前的位置,需要给 offset 传递一个负值。) 如果没有指定 whence,默认为 SEEK_SET。 成功则返回 0;否则返回 -1。注意移动到 EOF 之后的位置不算错误。 

解决方案 »

  1.   

    <?php
    $fp = fopen("xx.htm","a");// read some data
    fseek($fp,-5,SEEK_END);// move back to the begining of the file
    // same as rewind($fp);
    fwrite($fp,"x");
    fclose($fp);
    ?>
    结果:1234567890x<?
    $fp = fopen("xx.htm","a");
    fseek($fp,-5)
    fwrite ($fp,"x")
    ?>
    结果:1234567890x
      

  2.   

    1) 首先打开模式不对,"a"模式是追加,不可能中间插入的。要用可读写模式 "r+",正确:
    $fp = fopen("xx.htm", "r+");2) SEEK_END标志必须指定,如果是从文件最后开始移动指针的话。
    fseek($fp,-5, SEEK_END)