2016-07-19 85 views
0

好吧,這是我的第一篇文章。我搜遍了所有的東西,花了無數個小時,而且我仍然陷入困境,所以我尋求這個相對容易的PHP模塊的幫助。php - 添加到一個字符串的結尾並保存到txt文件

基本上簡而言之,我想要做的就是上傳一個文本文件到上傳目錄中,讓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

+1

使用谷歌搜索錯誤,我看到了這個 - http://www.somacon.com/p520.php和http://stackoverflow.com/questions/21127052/php-mailparse-so-error-undefined-symbol-mbfl -convert-filter-flush –

+0

有類似問題,請檢查您的擴展並禁用mailparse擴展。可能是郵件分析包含在服務器安裝中。你應該把php代碼移到html代碼上面。 – Nitin

回答

0

有幾個與你目前在做什麼的問題。首先,你已經打開文件只讀,但即使你改變了,你也不能在同一個文件中用一個更長的行替換一行。爲了使您的當前方法奏效,您需要打開第二個文件進行寫入,並隨時將修改過的行添加到第二個文件中。但只要這些文件不是很大,你應該能夠創建修改後的文件更簡單:

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

順便說一句,mailparse警告似乎並沒有進行相關的代碼,你」已張貼在這裏。

相關問題