PHP重写整个文件
好的,脚本基本上可以工作,但是每次我刷新data.txt文件时,我都希望它将每个条目添加到新文件中的data.txt中 示例:1.1.1.1 7月18日下午2:03:17PHP重写整个文件,php,timestamp,fwrite,Php,Timestamp,Fwrite,好的,脚本基本上可以工作,但是每次我刷新data.txt文件时,我都希望它将每个条目添加到新文件中的data.txt中 示例:1.1.1.1 7月18日下午2:03:17 <?php date_default_timezone_set("Europe/London"); function GetAddr() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet { $
<?php
date_default_timezone_set("Europe/London");
function GetAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$adresseip = GetAddr();
function sec2hms($sec, $padHours = false) {
@$hms = "";
@$days = intval($sec/86400);
if($days > 0 ) {
if($days == 1) {
@$hms .= (($padHours)?str_pad($hours, 2, "0", STR_PAD_LEFT).':':@$days.' Day');
} else {
@$hms .= (($padHours)?str_pad($hours, 2, "0", STR_PAD_LEFT).':':@$days.' Days');
}
}
@$sec-= ($days*86400);
@$hours = intval(intval($sec) / 3600);
if($hours > 0) {
if($days > 0) { @$s = ', '; }
if($hours == 1) {
@$hms .= @$s.(($padHours)?str_pad($hours, 2, "0", STR_PAD_LEFT).':':@$hours.' Hour');
} else {
@$hms .= @$s.(($padHours)?str_pad($hours, 2, "0", STR_PAD_LEFT).':':@$hours.' Hours');
}
}
@$minutes = intval(($sec / 60) % 60);
if($minutes > 0) {
if($hours > 0) { @$d = ', '; }
if($minutes == 1) {
@$hms .= @$d.str_pad($minutes, 2, "0", STR_PAD_LEFT) . ' Minute';
} else {
@$hms .= @$d.str_pad($minutes, 2, "0", STR_PAD_LEFT) . ' Minutes';
}
}
@$seconds = intval($sec % 60);
if($seconds > 0) {
if($minutes > 0) { @$p = ', '; }
if($seconds == 1) {
@$hms .= @$p.str_pad($seconds, 2, "0", STR_PAD_LEFT) . ' Second';
} else {
@$hms .= @$p.str_pad($seconds, 2, "0", STR_PAD_LEFT) . ' Seconds';
}
}
return @$hms;
}
function report($data) {
$time = date('g:i:s A', time());
echo "[$time] $data\n";
}
$d= date('F jS @ g:i:s a');
$fp = fopen('data.txt', 'r+');
fwrite($fp,"$adresseip - $d");
fclose($fp);
?>
这是:
$fp = fopen('data.txt', 'r+');
将指针放在文件的开头,导致覆盖。使用
$fp = fopen('data.txt', 'a+');
相反
更多信息请参见文档:
'r+'开放阅读和写作;将文件指针放在文件的开头
“a+”开放阅读和写作;将文件指针放在文件末尾。如果文件不存在,请尝试创建它
在模式下使用
fopen
时,文件指针位于文件的开头,这会导致覆盖数据。我在哪里添加“/n”以开始新行?a+起作用了,但它们在每行之后都在同一条线上;)。可能在您的fwrite
通话中。您应该在Unix系统上为换行符添加\n
(反斜杠),\r
用于MAC和\r\n
用于Windows;它只增加了/N行。@ AaronPrntscr不<代码> /N< /代码>,但是<代码> \n>代码> @ AaronPrntscr,您可以考虑接受这里的一个答案,这两个答案基本上都是正确的。谢谢你有$fp=fopen('data.txt','r+')
尝试使用$fp=fopen('data.txt','a+')
或$fp=fopen('data.txt','a')代码>。两者都可以,区别在于一个将添加到文件顶部,而另一个将添加到最后一个条目。你挑吧。
$fp = fopen('data.txt', 'a+');