【问题标题】:PHP match_preg_all error (Found sulution)PHP match_preg_all 错误(找到解决方案)
【发布时间】:2013-08-14 16:19:09
【问题描述】:

我目前正在开发一个计数器,每当新访问者访问该页面时都会计数,因此我为每个新访问者创建一个新的 .txt 文件。

文件存储为“hits/”.$_SERVER['REMOTE_ADDR'].“.txt”。

这是我的代码:

<?php
$visits = 0;
$hits = 0;

$fileResource = @fopen("hits/".$remote_addr.".txt","w+");
fwrite($fileResource,
"IP Adress:".$remote_addr."
Timestamp:".time().""
);

$fileResource = @fopen("hits/".$remote_addr.".txt","r");
$fileContent = @fread($fileResource,100000);

preg_match_all("/(.*):(.*)\n/i",$fileContent,$fileMatches);

foreach(glob("hits/*.txt") as $hit){
$hits++;
}
?>

所以我想做的是:

  1. 从文件中获取内容(完成)
  2. 对其进行格式化,以便通过获取“:”和\n(需要帮助)之间的内容将其显示在管理面板中
  3. 在管理面板上显示

编辑:我在玩 preg_match_all(),我找到了解决方案。就像删除 \n

一样简单

【问题讨论】:

  • 你能解释一下这段代码应该做什么吗?我可以看到你打开一个文件并写入它。然后您再次以读取模式打开文件并尝试从中匹配某些内容。然后迭代目录下的所有txt文件,增加每个文件的命中。然后脚本结束。这对我来说毫无意义。这将如何计算点击率?

标签: php preg-match-all hitcounter


【解决方案1】:

尝试在匹配表达式中将 \n 替换为 \\n。 \n 是文字字符 n。 \n 是文字 \ 后跟 n。

【讨论】:

  • 我不知道你用\n替换\n是什么意思? “\”是转义字符,所以\n会转换成新行
  • 我已编辑以显示我的意思。 2 个反斜杠而不是 1 个。StackOverflow 使用第一个作为转义字符,所以你只看到 1。
  • 哦,现在更有意义了
猜你喜欢
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 2012-06-19
  • 2021-07-23
  • 2020-09-13
相关资源
最近更新 更多