php没有将内容写入文本文件

时间:2014-09-25 04:53:32

标签: php forms fopen fwrite

我正在尝试将表单中的内容写入文本文件,并且不知道它为什么不起作用。我已经将代码上传到像000webhost这样的免费主机上,一切正常。所以不确定我的CentOS服务器是否存在一些错误配置,即CentOS 6.5版(最终版)。或者如果代码有问题,我们将非常感谢任何帮助。

<?php
header("Location: http://www.example.com");
$handle = fopen("data.txt", "a");
foreach($_POST as $variable => $value)
{
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fclose($handle);
exit;
?>

1 个答案:

答案 0 :(得分:1)

确保您对尝试写入的文件夹拥有正确的权限。它可能是由apache用户(www-data)或等同物

获得的

此外,PHP有一些更好的写入文件的方法。尝试类似:

$output = '';
foreach($_POST as $key => $val)
    $output .= sprintf("%s = %s\n", $key, $val);

file_put_contents('data.txt', $output);

只要$_POST不是2D,就应该清楚。如果它是2D或更多用于调试目的,为什么不使用print_r()(因为它的递归),例如。

file_put_contents('data.txt', print_r($_POST, true));

第二个参数使它返回一个字符串而不是实际打印。

为清楚起见,我考虑将header('Location: xxx')电话放在最后(即使它不会产生功能差异)。