【发布时间】:2017-02-28 10:49:22
【问题描述】:
我正在尝试在我正在使用的网络工具中实现一个“记录器”,它基本上是一个看起来像这样的 php 文件:
<?php
function makePost($post) {
$file = fopen("log.txt", "a") or die ("Unable to open file");
$today = date("Y/m/d-h:i");
fwrite($file, $today . "\n====================================");
fwrite("\n" . $post);
fwrite("\n====================================");
fclose($file);
}
我试图从“网络工具”中的其他位置调用它,当我试图从我为了处理数据库而拥有的类中调用它时出现问题,并且当我尝试调用上面的函数似乎程序只是停在它的轨道上,而函数的其余部分(以及记录器本身)没有被执行。
我尝试从中调用记录器的简化类:
class handleAccounts {
function loginValidation() {
require_once("log.php");
makePost("A login was attempted");
// Some more code that isn't executed
}
}
【问题讨论】:
-
首先将
require_once("log.php");移到课堂之外。log.php定义了一个全局函数,因此将其包含在全局中。其余的:您是否收到任何可以在此处显示的错误? -
你必须先初始化类然后调用函数。 $a =urclass(); $a->makePost();
-
第二个
trying to call it from a class是这个类与所有其他文件在同一个文件夹中。目前log.txt被写入类文件不在log.php所在的文件夹中。你有那个文件夹的权限吗?那是正确的文件夹吗? -
最后,这一行就是你所需要的:
file_put_contents('log.txt',"$today\n".str_repeat("=",20)."\n$post\n".str_repeat("=",20)."\n",FILE_APPEND)创建或附加数据到文件中。