php - 添加到字符串的结尾并保存到txt文件

时间:2016-07-19 17:11:31

标签: php string function text fwrite

好的伙计们,这是我的第一篇文章。我已经搜索了全部并且花了无数个小时而且我仍然卡住了所以我在这个相对简单的PHP模块上寻求帮助。

基本上简单来说,我想要做的是将文本文件上传到uploads目录,让PHP处理文件并执行字符串函数,将每个行的末尾添加HTML BREAK TAGS然后保存输出到文件。我已经学会了如何将格式化的文本回显到浏览器中,它看起来应该像格式化的html一样,但它不能回写到文件。

这是代码;

<?php

$form = <<<EOD
<form enctype="multipart/form-data" action="" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000000" />
Choose an file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
EOD;
echo $form;

$target_path = "uploads/";  //SETS THE UPLOAD DIRECTORY
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); // GETS FILEPATH OF UPLOAD FOR OPENING/PROCESSING

$uploadfile = basename($_FILES['uploadedfile']['name']); //GETS FILENAME OF THE UPLOADED FILE IN CASE ITS NEEDED.

//PROCESSING - MOVES TMP FILE INTO TARGET DIRECTORY.  NEED STRING FUNCTIONS APPLIED TO ADD <BR/> AT END OF EACH LINE.

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {

    $file = fopen($target_path, "r");

    while(!feof($file))
  {
      $line = fgets($file);  //READS EACH LINE

// STRING PROCESSING PART -- SHOULD I USE str_replace, substr_replace, nl2br, or str_pad ??
..........CODE GOES HERE............PLEASE HELP ME CHOOSE THE RIGHT CODING HERE...THANKS!!! SORRY FOR THE PSEUDOCODE!

/*  EXAMPLE SCRIPT:
$line2 = str_replace("\n", "<br />\n", $line); 
// THIS WORKS -- GREAT FOR OUTPUTTING FORMATTED HTML INTO BROWSER 
echo $line2;
// FOR NICE VIEWING BUT STILL CANNOT GET FORMATTED
//  HTML TO SAVE TO FILE USING  FWRITE() ...
*/

fwrite($file, $newstr);
  }  //CLOSES WHILE

fclose($file); //CLOSES FILE HANDLE
}   //CLOSES IF

?>

太晚深夜,打开窗户,以及让我的大脑想要爆炸的故障排除步骤!当我知道你们中的一个人可以在2分钟内解决这个问题!

我注意到我一直收到此错误日志:

PHP警告:模块&#39; mailparse&#39;已加载到第0行的未知

1 个答案:

答案 0 :(得分:0)

目前你正在做的事情有几个问题。首先,您已打开文件以供阅读,但即使您更改了该文件,也无法在同一文件中替换长行的行。为了使您当前的方法起作用,您需要打开第二个文件进行写入,并将修改后的行添加到第二个文件中。但只要文件不是很大,您就应该能够更简单地创建修改后的文件:

file_put_contents($output_file, nl2br(file_get_contents($input_file)));

顺便提一下,mailparse警告似乎与您在此处发布的代码无关。