首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >file_put_contents不是在一个地方工作,而是在代码中的其他地方工作

问file_put_contents不是在一个地方工作,而是在代码中的其他地方工作
EN

Stack Overflow用户
提问于 2016-05-12 20:18:38
回答 2查看 109关注 0票数 1

我是PHP新手,但对Java已习以为常。我有一个文件dd-functions.php,其中包含一个函数(writeToLog)。此函数将使用log-statement创建一个变量,然后将其写入文件。

奇怪的是,当从一个php文件(file1.php)调用它时,它可以很好地工作,但当从另一个php文件(file2.php)调用它时,它不会向文件中写入任何内容。在file1.php和file2.php中,functions.php都只包含一次。

这怎么可能呢?

Function.php

代码语言:javascript
复制
/* 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);
}
EN

回答 2

Stack Overflow用户

发布于 2016-05-12 20:22:29

您可以使用层次结构扩展文件,或者只需在include语句中包含此文件。

层次结构

代码语言:javascript
复制
<?php

    class ClassA extends ClassB {


    }

包含

代码语言:javascript
复制
log.php
<?php

$logA = 'mylogA';
$logB = 'otherlog';

?>

test.php
<?php


include 'log.php';

echo "Show my $logA"; 

?>
票数 0
EN

Stack Overflow用户

发布于 2016-05-12 21:36:33

由于您与analyse-email-click-log.txt的相对路径,此可能为。

如果你有三个这样的php文件

代码语言:javascript
复制
/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,后者可能受到写入权限的保护。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37186692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档