我是PHP新手,但对Java已习以为常。我有一个文件dd-functions.php,其中包含一个函数(writeToLog)。此函数将使用log-statement创建一个变量,然后将其写入文件。
奇怪的是,当从一个php文件(file1.php)调用它时,它可以很好地工作,但当从另一个php文件(file2.php)调用它时,它不会向文件中写入任何内容。在file1.php和file2.php中,functions.php都只包含一次。
这怎么可能呢?
Function.php
/* Log for user */
function writeToLog($user, $analyseName, $remaining_downloads) {
$uid = $user->ID;
$userdata = get_userdata($uid);
if ($userdata->first_name) {
$username = $userdata->first_name . ' ' . $userdata->last_name;
} else {
$username = $userdata->user_login;
}
date_default_timezone_set('Europe/Oslo');
$date = date('d.m.Y H:i:s');
$s2member_access_level = get_user_field ("s2member_access_level", $uid);
$userLog = $uid . "\t" . $date . "\t" . $username . "\t" . $user->user_email . "\t" . $analyseName . "\t" . $remaining_downloads . "\t" . $s2member_access_level . "\n";
file_put_contents('analyse-email-click-log.txt', $userLog , FILE_APPEND);
}发布于 2016-05-12 20:22:29
您可以使用层次结构扩展文件,或者只需在include语句中包含此文件。
层次结构
<?php
class ClassA extends ClassB {
}包含
log.php
<?php
$logA = 'mylogA';
$logB = 'otherlog';
?>
test.php
<?php
include 'log.php';
echo "Show my $logA";
?>发布于 2016-05-12 21:36:33
由于您与analyse-email-click-log.txt的相对路径,此可能为。
如果你有三个这样的php文件
/lib.php
/foo.php
/sub/bar.php让writeToLog驻留在lib.php中,并包含来自/foo.php和/sub/bar.php的/lib.php文件。如果您运行/foo.php,它将写入/analyse-email-click-log.txt,但如果您运行/sub/bar.php,它将写入/sub/analyse-email-click-log.txt,后者可能受到写入权限的保护。
https://stackoverflow.com/questions/37186692
复制相似问题