file_put_contents()没有写入文件

时间:2014-02-21 02:05:05

标签: php

我似乎无法确定为什么当客户端IP存在时,它不会附加到文件中。

我一直运行echo语句直到file_put_contents()函数,我可以看到变量中的内容。

$file = 'log.txt';

$now  = new DateTime();
$timestamp = $now->format('Y-m-d H:i');

if (isset($_SERVER['REMOTE_ADDR'])){ 
    $log = $_SERVER['REMOTE_ADDR'].' '. $timestamp;
}else{
    $log = 'SERVER '.$timestamp;
}

$log = strval($log); //convert to string
$log .= "\n\r";

file_put_contents($file,$log,FILE_APPEND);

2 个答案:

答案 0 :(得分:0)

首先,你问这个问题,这意味着你还没有掌握基本的调试方法。

调试代码需要打开错误报告。通过增加     error_reporting(E_ALL);     ini_set(' display_errors',' on'); 在代码的开头或修改php配置文件     error_reporting = E_ALL     display_errors = On 可以那样做。

无法写入文件通常是因为权限问题。

祝你好运!

答案 1 :(得分:-3)

你需要在写入文件之前打开文件,这里尝试类似这样的事情 -

    <?php
$my_file = fopen("log.txt", "r+");
    ?>

您甚至可以检查文件是否存在,如果不存在,您可以创建它!

这是一个可以帮助你的页面

File opening for php