您好我正在尝试创建一个基于HTML post和基本PHP的脚本。
我有一个关于HTML的输入,我有这个PHP代码:
<?php echo'h'?>
我的一位朋友说,如果我将w更改为a,它会创建一个新行,所以我更改了它并且它仍然无效。
基本上我要做的是,当他们进入文本框中的任何单词时,它会将该单词写入文本文档,但第二次不会创建新行,我只想创建一个新单词线。
这是我的完整代码:
<?PHP
$file_handle = fopen("sample.txt", "r");
$file_contents = $_POST['f1'];
fwrite($file_handle, $file_contents);
fclose($file_handle);
print "file created and written to";
?>
答案 0 :(得分:0)
我假设您要添加已发布到以前存储的文件的行?在这种情况下,您的代码将如下所示:
$file_handle = fopen("sample.txt", "a"); // append to previous contents
$file_contents = $_POST['f1'] . "\r\n";
fwrite($file_handle, $file_contents);
fclose($file_handle);
print "Content has been appended.";
有关不同fopen()
模式的更多信息,请参见in the documentation,章节&#34;模式&#34;有关转义序列的更多信息(如\r\n
)可以找到in the Strings chapter。
答案 1 :(得分:0)
还有其他看似简单的函数名称:file_put_contents()
和file_get_contents()
,可以使用(在您的情况下)使事情更容易处理。下面的代码显示了使用file_put_contents()
及其亲属file_get_contents()
来完成任务。
<?php
$fileName = "sample.txt";
// GET THE TEXT TYPED-IN BY THE USER...
// ONLY YOU KNOW THE WAY TO GET THIS VALUE BUT WE CAN ASSUME (FOR NOW)
// THAT IT IS COMING FROM THE POST VARIABLE AND HAS THE NAME: input
$input = isset($_POST['input']) ? $_POST['input'] : null;
// FIRST TRY TO SEE IF THE FILE EXIST, OTHERWISE CREATE IT
// HOWEVER; WITH JUST AN EMPTY CONTENT
if(!file_exists($fileName)){
file_put_contents($fileName, "");
}
// DO THE SAVING ONLY IF WE HAVE ANY INPUT (STRING) TO SAVE
if($input){
// GET THE CURRENT CONTENTS OF THE FILE...
$fileContent = file_get_contents($fileName);
// ADD THE INPUT TO THE CURRENT CONTENTS OF THE FILE (WITH A NEW LINE)
$fileContent .= "\n{$input}";
// SAVE THE MODIFIED CONTENT BACK AGAIN...
$bytesSaved = file_put_contents($fileName, $fileContent);
// IF THE FILE WAS SUCCESSFULLY WRITTEN... THEN...
// DISPLAY A MESSAGE TO THAT EFFECT
if($bytesSaved){
print "file created and written";
}
}