无法使用php附加(读写)文本文件。同时使用fopen()和fwrite()
我最近安装了Apache和PHP,并开始了一个小项目的工作 我有以下代码无法使用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
<?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+”,你将无法按照