无法使用php附加(读写)文本文件。同时使用fopen()和fwrite()

无法使用php附加(读写)文本文件。同时使用fopen()和fwrite(),php,Php,我最近安装了Apache和PHP,并开始了一个小项目的工作 我有以下代码 <?php $tim=time(); $ip=$_SERVER['REMOTE_ADDR']; $ipadd=$tim."IPaddress".$ip; $fp="user_log.txt";// file address $myfilea = fopen($fp,"a");//open file fwrite($myfilea,$ipadd.PHP_EOL);//add data to file echo

我最近安装了Apache和PHP,并开始了一个小项目的工作

我有以下代码

<?php 
$tim=time();
$ip=$_SERVER['REMOTE_ADDR'];
$ipadd=$tim."IPaddress".$ip;

$fp="user_log.txt";// file address

$myfilea = fopen($fp,"a");//open file

fwrite($myfilea,$ipadd.PHP_EOL);//add data to file
echo fread($myfilea,filesize($fp));//read file
fclose($myfilea);//close file
?>

这是我能做的。。。我可以使用“a”模式添加文本,也可以使用“r”模式阅读文本。我不能两者都做。我试着用“a+”、“r+”、“ar”等等

我在安装过程中错过了什么吗

我在Windows8.1上运行这个


谢谢您的帮助。

尝试此代码,使用

file\u put\u contents
=将字符串写入文件

$fp="user_log.txt";
$tim=time();
$ip=$_SERVER['REMOTE_ADDR'];
$ipadd=$tim."IPaddress".$ip;
$myfile = file_put_contents($fp, $ipadd.PHP_EOL , FILE_APPEND | LOCK_EX);
对于您的代码,请尝试此操作,它将检查是否能够打开文件

fopen("logs.txt", "a") or die("Unable to open file!");

您需要倒带文件指针

$tim = time();
$ip = $_SERVER['REMOTE_ADDR'];
$ipadd = $tim.'IPaddress'.$ip;

// file address
$fp = 'user_log.txt';

//open file
$myfilea = fopen($fp, 'a+');

//add data to file
fwrite($myfilea, $ipadd.PHP_EOL);

// your file pointer is at the end of the file now
// so rewind before you read
rewind($myfilea);

//read file
echo fread($myfilea, filesize($fp));
//close file
fclose($myfilea);

为什么你认为你“两件事都不能做”(
a+
)?我知道我应该能做到,但由于某种原因我不能做到。我尝试了a+,你检查了错误日志了吗?日志中没有错误。这是文件指针…想想“盒式磁带”…你需要倒带,因为你添加到了末尾。你看的是结尾,所以你不能在它之前阅读。谢谢你的回复。这就是我要做的。但是我仍然想知道发生了什么。如果你使用了
文件内容,为什么不使用
文件内容
?谢谢兄弟。rewind()解决了这个问题。我认为当您自动调用fread()时,文件将从一开始就被读取。我基本上是从文件的末尾开始读的。感谢$myfilea=fopen($fp,'a+')中的“+”;这也是必要的。我会推荐$tim=日期(“Ymdis”);获取年-月-日-分-秒字符串。事实上,如果没有“a+”,你将无法按照