php — добавить в конец строки и сохранить в текстовый файл

ОК, ребята, это мой первый пост. Я искал повсюду и провел бесчисленное количество часов, и я все еще застрял, поэтому я прошу помощи с этим относительно простым модулем PHP.

вкратце, то, что я хочу сделать, это загрузить текстовый файл в каталог загрузки и заставить PHP обработать файл и выполнить строковую функцию, которая добавит теги HTML BREAK в конец каждой строки, а затем сохранит этот вывод в файл . Я научился отображать отформатированный текст в браузере, и он выглядит так, как должен, как отформатированный 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


person Joe Cream    schedule 19.07.2016    source источник
comment
Погуглив ошибку, я увидел это - somacon.com/p520.php и stackoverflow. ком/вопросы/21127052/   -  person Alon Eitan    schedule 19.07.2016
comment
Была аналогичная проблема, проверьте свои расширения и отключите расширение mailparse. Возможно, mailparse включен в установку сервера. И вы должны переместить php-код над html-кодом.   -  person Nitin    schedule 19.07.2016


Ответы (1)


Есть пара проблем с тем, что вы делаете в настоящее время. Во-первых, вы открыли файл только для чтения, но даже если вы это измените, вы не сможете просто заменить строку более длинной строкой в ​​том же файле. Чтобы ваш текущий подход работал, вам нужно открыть второй файл для записи и добавлять измененные строки во второй файл по ходу дела. Но пока файлы не очень большие, вы сможете создать модифицированный файл проще:

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

Кстати, предупреждение mailparse, похоже, не связано с кодом, который вы разместили здесь.

person Don't Panic    schedule 19.07.2016