基本上简单来说,我想要做的是将文本文件上传到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行的未知
答案 0 :(得分:0)
目前你正在做的事情有几个问题。首先,您已打开文件以供阅读,但即使您更改了该文件,也无法在同一文件中替换长行的行。为了使您当前的方法起作用,您需要打开第二个文件进行写入,并将修改后的行添加到第二个文件中。但只要文件不是很大,您就应该能够更简单地创建修改后的文件:
file_put_contents($output_file, nl2br(file_get_contents($input_file)));
顺便提一下,mailparse警告似乎与您在此处发布的代码无关。