首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在写作时很难做新的行

在写作时很难做新的行
EN

Stack Overflow用户
提问于 2015-08-18 05:05:00
回答 1查看 56关注 0票数 2

我正在制作一个图像,记录访问它的每个人的IP (为了安全)。以下是代码:

代码语言:javascript
复制
<?php
$ip = $_SERVER['REMOTE_ADDR'];
header("Content-Type: image/png");
$im = @imagecreate(1, 1);
$background_color = imagecolorallocate($im, 0, 0, 0);
$farmerbase = "farmers/" . basename(__FILE__, '.php') . ".txt";
file_put_contents($farmerbase, $ip . "\n", FILE_APPEND);
imagepng($im);
imagedestroy($im);
?>

我如何使它不记录相同的IP 3次,并确保它将它们放在不同的行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-18 06:54:02

1.缺少的行打断了

正如在对您的问题的注释中提到的,在不同的操作系统中编码纽林有不同的方法。为了避免这些问题,您通常会使用内置常量PHP_EOL,这是运行PHP的平台的正确换行符。在您的示例中,服务器可能运行在与本地计算机不同的平台上。因此,如果您想要windows,您需要使用"\r\n"来实现Mac,这就是"\r"

2.每页点击两行

显然,脚本每次调用时只写一行。因此,我怀疑它是运行两次,每次你点击的网址,它是你正在使用的。为了证明您可以修改脚本,在每一行中添加一个随机数:

代码语言:javascript
复制
file_put_contents($farmerbase, $ip . ':' . rand() . "\n", FILE_APPEND);

现在,如果这两行是相同的,那么file_put_contents()意外地写了两次。如果行不同,您知道脚本被执行了两次(要么两次输入URL,要么是服务器设置中的某个问题,或者是因为您实际加载了两次页面)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32063908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档