[英]PHP: How to call function outside of class
我正在嘗試在我正在使用的網絡工具中實現一個“記錄器”,它基本上是一個如下所示的 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
}
}
在第 8 行和第 9 行的 MakePost 函數中有錯誤。通過注釋第 8 行和第 9 行解決了這個問題。
function makePost($post) { $file = fopen("log.txt", "a") or die ("Unable to open file"); $today = date("Y/m/dh:i"); fwrite($file, $today . "\\n===================================="); // fwrite("\\n" . $post); // fwrite("\\n===================================="); fclose($file); }
改成這樣
<?php
function makePost($post) {
$today = date("Y/m/d-h:i");
$sep = str_repeat("=",20);
$res = file_put_contents('log.txt',"$today\n$sep\n$post\n$sep\n",FILE_APPEND);
if(!$res){
die ("Unable to open and write to file");
}
}
和
<?php
require_once("log.php");
class handleAccounts {
function loginValidation() {
makePost("A login was attempted");
// Some more code that isn't executed
}
}
'log.txt'
注意事項:例如,如果log.php
在/foo/bar/log.php
下並且日志文件應該在/foo/log/log.txt
下,您可以執行dirname(__FILE__).'/../log/log.txt'
而不是'log.txt'
,因此您將始終寫入同一文件夾中的同一文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.