Php 未写入文件,但没有错误

Php 未写入文件,但没有错误,php,file,Php,File,我正在尝试使用PHP将表单输入中的数据写入文本文件。文件似乎加载正确,但没有写入数据 在尝试写入之前,我已经直接回显了输入值,以确保它们不是空的 文本文件与php文件位于同一目录中 我最初收到错误“Warning:fwrite():提供的参数不是有效的流资源”,但通过调整文本文件的权限更正了该错误 我当前的代码 $fp = fopen('sidebar_subscribers.txt', 'a'); fwrite($fp, $name."\t".$email."\t".$leader."\t".

我正在尝试使用PHP将表单输入中的数据写入文本文件。文件似乎加载正确,但没有写入数据

在尝试写入之前,我已经直接回显了输入值,以确保它们不是空的

文本文件与php文件位于同一目录中

我最初收到错误“Warning:fwrite():提供的参数不是有效的流资源”,但通过调整文本文件的权限更正了该错误

我当前的代码

$fp = fopen('sidebar_subscribers.txt', 'a');
fwrite($fp, $name."\t".$email."\t".$leader."\t".$industry."\t".$country."\t".$zip."\r\n");
fclose($fp);
为什么这些值没有写入文本文档

服务器上是否有php需要设置的内容需要我检查

这是在WordPress博客上使用的

谢谢


******这个问题现在已经解决了。文件被创建并写入错误的位置。谢谢你的帮助和建议*******

在结束前尝试
fflush($fp)

在结束前尝试
fflush($fp)

代码对我来说是书面的;我建议添加以下内容以确定错误发生的位置:

<?php    
  $fp = fopen('sidebar_subscribers.txt', 'a') or die('fopen failed');

  fwrite($fp, "$name\t$email\t$leader\t$industry\t$country\t$zip\r\n") or die('fwrite failed');
?>

关于无效流资源的原始错误是由于未检查返回值而导致的,而“or die()”实际上是为您检查返回值。fopen失败了,返回false,您将false作为第一个参数传递给fwrite

通过检查fwrite的返回值,可以进一步检查错误:

<?php

$ret = fwrite($fp, "$name\t$email\t$leader\t$industry\t$country\t$zip\r\n");

if ($ret === false)
  die("Fwrite failed");
echo ("fwrite wrote $ret bytes");
?>

作为我的书面作品的代码;我建议添加以下内容以确定错误发生的位置:

<?php    
  $fp = fopen('sidebar_subscribers.txt', 'a') or die('fopen failed');

  fwrite($fp, "$name\t$email\t$leader\t$industry\t$country\t$zip\r\n") or die('fwrite failed');
?>

关于无效流资源的原始错误是由于未检查返回值而导致的,而“or die()”实际上是为您检查返回值。fopen失败了,返回false,您将false作为第一个参数传递给fwrite

通过检查fwrite的返回值,可以进一步检查错误:

<?php

$ret = fwrite($fp, "$name\t$email\t$leader\t$industry\t$country\t$zip\r\n");

if ($ret === false)
  die("Fwrite failed");
echo ("fwrite wrote $ret bytes");
?>


fclose始终隐式刷新缓冲区。fclose始终隐式刷新缓冲区。我执行了上述操作。没有返回任何骰子错误,并且它回显它写入了50个字节,这对于写入的少量数据来说似乎非常准确。文本文件仍然为空,请尝试将文件模式更改为“w”而不是“a”,查看文件中是否出现任何内容。此外,请尝试将文件名更改为绝对路径,如“/home/user/sidebar_subscribers.txt”,并查看是否写入了任何内容。可能你确实在用文本填充一个文件,但它与你正在检查的文件不同。Meagar你完全正确。在根目录中创建了一个新文件,并正在写入其中。我如何指定绝对路径,realpath(')?@Joe您只需要指定一个文件的路径,该文件从根目录“/”开始具有写入权限。没有返回任何骰子错误,并且它回显它写入了50个字节,这对于写入的少量数据来说似乎非常准确。文本文件仍然为空,请尝试将文件模式更改为“w”而不是“a”,查看文件中是否出现任何内容。此外,请尝试将文件名更改为绝对路径,如“/home/user/sidebar_subscribers.txt”,并查看是否写入了任何内容。可能你确实在用文本填充一个文件,但它与你正在检查的文件不同。Meagar你完全正确。在根目录中创建了一个新文件,并正在写入其中。如何指定绝对路径,realpath(')?@Joe您只需要指定一个文件的路径,该文件从根目录“/”开始具有写入权限。try:ini_set('display_errors','on');错误报告(E|u ALL | E|u STRICT);在开头的某个地方,查看是否有任何错误“ini_集('display_errors','on')返回一个错误;错误报告(E_ALL | E_STRICT);“try:ini_集('display_errors','on');错误报告(E|u ALL | E|u STRICT);在开头的某个地方,查看是否有任何错误“ini_set('display_errors','on')返回无错误;错误报告(E_ALL | E_STRICT);”