我有一个简单的代码段
$data = '[' . date('d-m-Y H:i:s') . ']: Operation timeout at URL ' . $this->curlInfo['url'];
print $data;
file_put_contents('/logs/curl_timeout.txt', $data);
打印执行以下操作
[01-08-2014 09:42:05] Operation timeout at URL http://example.com
我想将其保存到日志下的curl_timeout.txt文件中。文件和文件夹都有777权限。但它仍然无法正常工作。那里没有文字保存。我做错了吗?
编辑:我也试过先打开它
fopen('/logs/curl_timeout.txt', 'wb');
但它仍然没有将文本保存到文件中。
答案 0 :(得分:1)
似乎看起来像位置和文件的问题。
您是否检查该文件是否存在?
首先尝试使用file_get_contents
打印该文件中的内容。
希望这有帮助。
干杯!
答案 1 :(得分:1)
您错误地指定了文件路径:/logs/curl_timeout.txt', $data);
我的意思是导致斜杠,
在这种情况下,你应该指定绝对路径,如:/ var / www / public_html..`等..
所以使用相对路径:也许../../logs/curl_timeout.txt', $data);
也可能有权限问题检查它
解决方案是:
定义日志路径define('LOG_PATH', '/var/www/...log/...')
比使用它:file_put_contents(LOG_PATH, $data);
,
如果你有一个级别的tmp日志目录,你可以尝试:file_put_contents(LOG_PATH."../tmp/log/...", $data);
答案 2 :(得分:0)
首先检查返回值:
$result = file_put_contents('/logs/curl_timeout.txt', $data);
var_dump($result);
如果$ result === FALSE那么你有问题。尝试做这样的事情:
$logfile = realpath('./logs/curl_timeout.txt');
$result = file_put_contents($logfile, $data);
var_dump($result);