错误,不应该在那里

时间:2015-01-05 21:09:11

标签: php

这是我的第一个问题,请原谅我,如果我做错了什么!我正在努力!

所以我得到了这个简单的代码

    <?php 
$fn = "file.txt"; 
$file = fopen($fn, "w+"); 
$size = filesize($fn); 

if($_POST['addition']) fwrite($file, $_POST['addition']); 

$text = fread($file, $size); 
fclose($file); 
?> 
<form action="<?=$PHP_SELF?>" method="post"> 
<input type="text" name="addition" value="<?php echo file_get_contents('file.txt');?>"/> 
<input type="submit"/> 
</form>

<iframe width="420" height="315" src="//<?php echo file_get_contents('file.txt');?>" frameborder="0" allowfullscreen></iframe>

它完美无缺,只是一个小问题...

问题

脚本运行正常,但问题是输出错误:

  

警告:fread()需要2个参数,第8行/home/u799303375/public_html/beta/private/Test/test.php中给出的参数为1

我不知道如何解决这个问题

我已经尝试了什么

  1. 我尝试删除$ size,没有用,它预计2个字符串只能获得1。
  2. 还没有......
  3. 请帮助我,如果你需要一个有效的例子,请立即询问不包括在内!

2 个答案:

答案 0 :(得分:1)

通过PHP文档,fopen($ fn,“w +”)将文件指针设置为文件的开头,并将文件截断为零长度。我的假设是fread不接受文件大小为0(零)作为有效参数值。

从您的代码段看起来就像是在尝试附加到此文件。您可能想尝试不同的fopen模式,例如“a +”。这将打开文件进行读写,将指针设置在文件的末尾。如果该文件不存在,它将尝试创建它。

如果你想读取文件的全部内容(看起来你正试图这样做); fread文档建议使用file_get_contents()命令。在您写入文件并关闭它之后,请尝试以下命令:

$ text = file_get_contents($ fn);

从你的代码片段来看,这看起来并不是必要的。

答案 1 :(得分:0)

fread()需要资源和int

string fread ( resource $handle , int $length )

你检查了你的$ size参数吗? 这可能是假的。这可能会导致错误。