无法使用php附加(读取和写入)文本文件。一起使用fopen()和fwrite()

时间:2016-12-06 12:11:49

标签: 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 fread($myfilea,filesize($fp));//read file
fclose($myfilea);//close file
?>

这是我能做的......我可以使用&#34; a&#34;模式添加文本或我可以使用&#34; r&#34;模式阅读文字。我不能两个都做。我尝试使用&#34; a +&#34;,&#34; r +&#34;,&#34; ar&#34;等。

我在设置过程中是否遗漏了什么?

我在Windows 8.1上运行它。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您需要回放文件指针。

$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);

答案 1 :(得分:0)

尝试使用此代码,使用 file_put_contents

file_put_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!");