Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP从表单提交中编写换行符_Php_Forms_Newline - Fatal编程技术网

PHP从表单提交中编写换行符

PHP从表单提交中编写换行符,php,forms,newline,Php,Forms,Newline,我阅读了关于这类问题的所有结果,但似乎我无法解决它。我只想我的.txt文件创建一个新行,并禁用覆盖所说的文件,如果有人提交了一个新的条目 表格如下: <form action="shots.php" method="post" enctype="multipart/form-data"> <input type="text" name="caption" maxlength="180" placeholder="Enter caption here..."><br

我阅读了关于这类问题的所有结果,但似乎我无法解决它。我只想我的.txt文件创建一个新行,并禁用覆盖所说的文件,如果有人提交了一个新的条目

表格如下:

<form action="shots.php" method="post" enctype="multipart/form-data">

<input type="text" name="caption" maxlength="180" placeholder="Enter caption here..."><br>
<input type="file" name="image">
<input type="submit" name="upload" value="Upload Now">
</form>


这是php代码:

<?php
$f = fopen("textfile.txt", "w");
fwrite($f, $_POST["caption"]); 
fclose($f);
$f = fopen("textfile.txt", "r");
echo fgets($f); 
fclose($f);

if(isset($_POST['upload'])){

$image_name = $_FILES['image']['name'];
$image_type = $_FILES['image']['type'];
$allowed_type = array("image/jpeg", "image/gif", "image/png");
$image_size = $_FILES['image']['size'];
$image_tmp_name = $_FILES['image']['tmp_name'];

if($image_size > 800000) {
  echo "<br><div style='color: #ff4040'>File size too big.</div>";
  exit();   
}

if(!in_array($image_type, $allowed_type)) {
  echo "<br><div style='color: #ff4040'>Only jpg, gif, and png files are allowed.</div>";
  exit();   
}

if($image_name==''){
echo "<br><div style='color: #ff4040'>Please select an image first!</div>";
exit(); 
}

else
move_uploaded_file($image_tmp_name,"larawan/$image_name");
echo "<br><div style='color: green'>Upload complete! A Game Master will now review your screenshot.</div><br>";
echo "<img style='width: 50%; height: auto' src='larawan/$image_name'>";
}

?>
替换这些行:

$f = fopen("textfile.txt", "w");
fwrite($f, $_POST["caption"]); 
fclose($f);
与:

这将添加到文件的末尾,而不是覆盖它,并在每一行后面放置一个换行符

要包括用户提交的文件名,请执行以下操作:

file_put_contents("textfile.txt", $_POST["caption"] . " - " . $_FILES['image']['name'] . PHP_EOL, FILE_APPEND);

您应该将此代码移动到
if
块中,因此只有在测试此处是否上载了表单后才能执行此操作。

我想您正在寻找
/n
我完全迷路了。你能帮我重新发布一个代码吗?如果你不想在文件中添加(
a
)而不是写入(
w
),你也应该在文件中添加(
a
)overwritten@DamienPirsy我把它附加在“a”后面,是的,文本现在从未被覆盖。现在我的问题是.txt文件看起来是这样的:
Submit1Submit2Submit3
此外,是否有一种方法可以将用户从表单提交的文件名添加到文本文件中?示例:
CaptionSubmitted101-wallperentry.jpeg
谢谢您,先生。我已经在
if
块中移动了它,现在一切都好了。非常感谢,先生!
file_put_contents("textfile.txt", $_POST["caption"] . " - " . $_FILES['image']['name'] . PHP_EOL, FILE_APPEND);