\r\n也是不换行的
因为我写入文本采用强制二进制的rb+

解决方案 »

  1.   

    $fp = fopen("a.txt", "rb+");
    fwrite($fp, "e\nf\ng");
    fclose($fp);我这里测试通过,一切正常
      

  2.   

    真有你的!!!在writeinline中有fseek($fp,$offset);
    而在addonlinefile中有
    $db_olsize=80;
    $newonline = str_pad($newonline,$db_olsize)."\n";
    writeinline("1.php",$newonline,$db_olsize*$offset);
    你所有与偏移相关的参数都没有把附加的"\n"计算进去!难道"\n"没有长度吗?
      

  3.   

    $filename = "1.php";
    if ($fp = @fopen($filename, "rb+")) { for ($i = 0; $i <= 10; $i++) {
    $uid = $i*100 + $i;
    $data = $uid. "\t". time(). "\t\n";
    fputs($fp, $data);
    } fclose($fp);
    } else {
    echo "Could not open the file";
    }
      

  4.   

    解决了
    我的办法是
    $newonline = str_pad($newonline,$db_olsize)."\n";
    改写为
    $newonline = "\n".str_pad($newonline,$db_olsize);请问唠叨大哥,"\n"的长度是多少呢?
      

  5.   

    strlen("\n")你
    $newonline = "\n".str_pad($newonline,$db_olsize);
    是错误的,假如$newonline的长度是$db_olsize呢?势必将丢掉最后一个字符了
      

  6.   

    把  writeinline("1.php",$newonline,$db_olsize*$offset);改成
     writeinline("1.php",$newonline,$db_olsize*$offset+$offset);
      

  7.   

    我的问题正好相反。写入html的时候它给我换行了:(
      

  8.   

    奇怪,为什么下面的这句话就可以换行呢?
    感谢Cain(好好学习,天天向上) 的正确答案,xuzuning(唠叨) 大哥的热心指点,其它各位大哥的分析解答.
    把  writeinline("1.php",$newonline,$db_olsize*$offset);改成
     writeinline("1.php",$newonline,$db_olsize*$offset+$offset);