fopen fread 和 fwrite 的麻烦
fopen fread and fwrite trouble
我试图让用户在文本框中写一些东西。然后文本被写在名为 "list.txt" 的文件中的新行中。然后我想在网站上读取整个文件。这样它就会像聊天室之类的。问题是,现在它告诉我 "Unable to open file." 我已经检查过文件的权限,并且每种类型的用户都具有完全访问权限。 List.txt 也与 php 文件位于同一目录中。此外,当它能够打开文件时,它不会将其写入新行。我知道这可以使用“\n”或 PHP.EOL 来完成,但它们似乎都不起作用,有时它们会从 运行 本身停止站点。请帮我弄清楚这是怎么回事,谢谢。
<html>
<p>
<form name="form1" method="post" action="test.php">
<input name="text" type="text">
<input type="submit" value="send" method="post">
</p>
<p>
<?php
$file = fopen("list.txt") or die ("Unable to open file!");
$text = $_POST['text'];//where the hell do you put the new line indicator: "\n"//
fwrite($file, $text) or die ("Cannot write!");
$print = fread($file,filesize("list.txt", "a+"));
fclose($file);
echo $print;
?>
</p>
<?php //figure out how to make this a button that clears the file
/*
$fp = fopen("list.txt", "r+");
// clear content to 0 bits
ftruncate($fp, 0);
//close file
fclose($fp);*/
?>
</html>
您遇到的问题是您的文件在php写入内容时会被锁定。
如果您想同时写入,那么您将有短时间无法访问您的文件。这就是基于文件的解决方案的大问题。数据库引擎就是为此而生的。
使用file_put_contents
...
$file = 'list.txt';
$content = $_POST['text']."\n";
// Write the contents to the file,
// using the FILE_APPEND flag to append the content to the end of the file
file_put_contents($file, $content, FILE_APPEND);
根据文档
This function is identical to calling fopen(), fwrite() and fclose()
successively to write data to a file.
If filename does not exist, the file is created. Otherwise, the
existing file is overwritten, unless the FILE_APPEND flag is set.
我试图让用户在文本框中写一些东西。然后文本被写在名为 "list.txt" 的文件中的新行中。然后我想在网站上读取整个文件。这样它就会像聊天室之类的。问题是,现在它告诉我 "Unable to open file." 我已经检查过文件的权限,并且每种类型的用户都具有完全访问权限。 List.txt 也与 php 文件位于同一目录中。此外,当它能够打开文件时,它不会将其写入新行。我知道这可以使用“\n”或 PHP.EOL 来完成,但它们似乎都不起作用,有时它们会从 运行 本身停止站点。请帮我弄清楚这是怎么回事,谢谢。
<html>
<p>
<form name="form1" method="post" action="test.php">
<input name="text" type="text">
<input type="submit" value="send" method="post">
</p>
<p>
<?php
$file = fopen("list.txt") or die ("Unable to open file!");
$text = $_POST['text'];//where the hell do you put the new line indicator: "\n"//
fwrite($file, $text) or die ("Cannot write!");
$print = fread($file,filesize("list.txt", "a+"));
fclose($file);
echo $print;
?>
</p>
<?php //figure out how to make this a button that clears the file
/*
$fp = fopen("list.txt", "r+");
// clear content to 0 bits
ftruncate($fp, 0);
//close file
fclose($fp);*/
?>
</html>
您遇到的问题是您的文件在php写入内容时会被锁定。
如果您想同时写入,那么您将有短时间无法访问您的文件。这就是基于文件的解决方案的大问题。数据库引擎就是为此而生的。
使用file_put_contents
...
$file = 'list.txt';
$content = $_POST['text']."\n";
// Write the contents to the file,
// using the FILE_APPEND flag to append the content to the end of the file
file_put_contents($file, $content, FILE_APPEND);
根据文档
This function is identical to calling fopen(), fwrite() and fclose() successively to write data to a file.
If filename does not exist, the file is created. Otherwise, the existing file is overwritten, unless the FILE_APPEND flag is set.