【问题标题】:php - add to end of a string and save to txt filephp - 添加到字符串的末尾并保存到 txt 文件
【发布时间】:2016-07-19 17:11:31
【问题描述】:

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

简而言之,我要做的是将文本文件上传到上传目录,并让 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 警告:模块 'mailparse' 已加载到第 0 行的未知中

【问题讨论】:

标签: php string function text fwrite


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-03-16
    • 2017-02-07
    • 1970-01-01
    • 2012-08-03
    • 2020-01-28
    • 2012-02-03
    • 2022-08-18
    • 2021-01-04
    • 1970-01-01
    相关资源
    最近更新 更多