所以这是我的代码:
<?php
$path = 'logs/' . date("Y:m:d") . '.txt';
$get = $_POST['data']; // I know this is insecure, don't worry
$file = fopen($path, 'w') or die("Something is wrong with your file permissions, please obtain the nessecary rights!");
fwrite($file, $get) or die('error writing to file');
?>
fopen()
功能正常工作,我没有任何错误。问题是我得到了" error writing to file
",这意味着我的fwrite()
函数有问题。
这里有什么问题?
我正在使用apache2和php7。
由于您的文件名称的名称(如:
),它是行不通的$path = 'logs/' . date("Y:m:d") . '.txt';
您会注意到,生成的路径将是: logs/2016:12:18.txt
暗示您的 .txt
文件的名称是 2016:12:18
这不是一个有效名称,因为文件名不能包含冒号( :
)。
请注意;命名文件时无法使用以下字符:
- &lt;(小于)
- >(大于)
- :(colon)
- "(双引号)
- /(前向斜线)
- (BackSlash)
- |(垂直条或管道)
- ?(问号)
- *(星号)
...在这里和这里阅读更多。
您应该修改可接受的文件名,以使其正常工作。
以下是一个示例,使用连字符( -
)作为定界符:
$path = 'logs/' . date("Y-m-d") . '.txt'; // Expected result: logs/2016-12-18.txt