输出前加上fseek ($fp,0,SEEK_END)试试

解决方案 »

  1.   

    fseek ($fp,0,SEEK_END);
    在FPUTS()前加上你说的这个函数;显示为0;成功:这个函数意思是查找文件指针从0到结束,用它有什么作用吗??
      

  2.   

    fseek ($fp,0);一样也不可以~~~以前这些函数没出什么问题~~怎么现在就出问题了呢,服务器是UNIX,和服务器有关吗
      

  3.   

    WEB服务器用的APACHE,这和它有什么关系吗~~~???
      

  4.   

    fseek 这个函数意思是查找文件指针从0到结束,用它有什么作用吗?? 错!!!
    打开文件后会有一个文件指针指向下一次要操作的位置,fseek的作用是设置这个指针到指定的位置。不要被seek这个词迷惑了。要知道大部分有低级文件读写的语言都有fseek这个函数。
      

  5.   

    这个函数的意思你理解错了,SEEK_END常数表示从文件末尾开始,
    int fseek ( int fp,int offset,起始位标志)
      

  6.   

    要知道文件有eof错,还有bof错,
    根据操作系统不同,文件打开后的定位有点不同。
    对于无内容文件,可能定位于bof也可能定位于eof。
    如果定位于bof,则会出现这种问题,那就要人工将文件指针移到eof去。
      

  7.   

    大家说的都应该是有道理,但是我加上这个函数后,函数是显示为0(成功),但是还是老样子,空的时候不能写入~~~是不是APACHE里或PHP设置里的问题呢~~本来读写文件的函数没有问题的,现在怎么出问题了呢~
      

  8.   

    用fopen+"r"开了文件,然后再关掉,
    然后用fopen+"a+" 写文件试试。
      

  9.   

    老兄果然厉害.
    这段程序让我大开眼界:
    cookie,
    sessions,
    读写文件,
    还要去机器设置权限.我头大.
      

  10.   

    array fgetcsv(int fp, int length, string [delimiter]);
    本函式与 fgets() 的功用类似,不同的地方在于本函式用来剖析读取行的 CSV 栏位资料,并将其放入阵列变数之中。其中的第三个参数 delimiter 若未指定,则使用内定值:逗号。其中的档案指标 fp 必须是有效的,且必须是已经用 fopen()、popen() 或 fsockopen() 成功开档的指标。而第二个参数 length 的值必须要比 CSV 档案最长一行的字元数还大。本函式若发生错误或者到档尾 (EOF, end of file),则会传回 false 值。若遇到空行,则传到阵列结构的字元为空字元栏位 (null),而不是当作发生错误的情形。
    你应该先写进去再读出来!
      

  11.   

    我用a+可以的啊!奇怪了,我刚用的程序是
    <?
    //fp.php
    $row=1;
    $fp = fopen("mycsv.csv","a+");
    while ($data = fgetcsv($fp,1000, "|")) {
      $num = count($data);
      print "<p>栏位 $num 在第 $row 行: <br>";
      $row++;
      for ( $c=0; $c<$num; $c++ ) print $data[$c] . "<br>";
    }
    fputs($fp,"哈哈|荸荠|西瓜\n"); 
    fclose($fp);
    ?> 
    对了,那执行时有提示什么错误吗?
      

  12.   

    实在劳烦大家了,真不好意思~~再加到20分慰劳大家~~
    谢谢!!
    请大家考虑和服务器的那些方面可能有关系
    我是unix下的APACHE服务器配置~~