【问题标题】:PHP Unable to do file operations file (fopen, fwrite, fclose)PHP 无法对文件进行文件操作(fopen、fwrite、fclose)
【发布时间】:2017-07-07 16:07:19
【问题描述】:

我遇到了一个问题。这是我的脚本的样子:

$file = fopen("logs/log.php", "r+") or die("Kan bestand (1) niet openen bradda!");
$content = fread($file, filesize("logs/log.php"));
fclose($file);
$filee = fopen("logs/log.php", "r+") or die("Kan bestand (2) niet openen bradda!");
$newcontent = $content.'<br /><b>'.$userRow['userId'].'   -   '.$userRow['userName'].'     -     '.$search;
fwrite($filee, $newcontent) or die("Kan bestand (3) niet openen bradda!");
fclose($filee);

我的目的是创建一个日志。每次用户搜索关键字时,都必须将其记录在“log.php”文件中。 我在 VPS(Windows 服务器)上运行,正如我从另一个具有 PHP 经验的人那里了解到的那样,告诉我目录/路径应该不同。因为它不是虚拟主机。 如果这是真的,我不知道。但我希望你们能帮助我解决这个问题。

【问题讨论】:

  • 您不应该登录到数据库表吗?
  • 有什么问题?
  • @Terry 如果错误是数据库问题怎么办?记录到文件可能稍微健壮一些。

标签: php fopen fwrite fread fclose


【解决方案1】:

按照以下步骤操作: 1)在您的网站根目录中创建日志文件夹。 2)检查您的日志文件夹读/写权限。 (需要许可 777) 3) 在 r+ 的地方使用 a+。因为在 r+ 文件中,指针从文件的开头开始,而在 a+ 中,文件中的现有数据被保留。文件指针从文件末尾开始。如果文件不存在,则创建一个新文件。

【讨论】:

  • 我不会将日志文件放在网站目录中 - 除非您非常小心,否则访问该网站的每个人都可以阅读它。
  • 那么我的建议是:创建可从 apache(从 php)访问的虚拟目录。
  • 你不希望 apache 能够看到它(这是我最初的观点),只有 PHP 应该能够访问它。
猜你喜欢
  • 2023-04-08
  • 2016-02-26
  • 2015-12-04
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-21
相关资源
最近更新 更多