2016-07-19 2 views
0

OK Jungs, das ist mein erster Beitrag. Ich habe überall gesucht und unzählige Stunden verbracht und bin immer noch fest, also bitte ich um Hilfe mit diesem relativ einfachen PHP-Modul.PHP - am Ende einer Zeichenfolge hinzufügen und in TXT-Datei speichern

Im Grunde genommen möchte ich eine Textdatei in ein Upload-Verzeichnis hochladen und PHP die Datei verarbeiten lassen und eine String-Funktion ausführen, die am Ende jeder Zeile HTML BREAK TAGS hinzufügt und dann speichert diese Ausgabe in Datei. Ich habe gelernt, wie man den formatierten Text in den Browser einfügt, und es scheint so, wie es formatiert sein sollte, aber es funktioniert nicht, um in die Datei zurück zu schreiben.

Hier ist der Code;

<?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 

?> 

zu viele Nächte, offene Fenster und Schritte zur Fehlerbehebung, um mein Gehirn explodieren zu lassen! Wenn ich weiß, dass einer von euch es in 2 Minuten schaffen kann !!!

Ich merke, ich bekomme immer wieder dieses Fehlerprotokoll:

PHP Warning: Modul ‚mailparse‘ bereits in Unknown geladen on line 0

+1

googeln den Fehler, sah ich dies - http://www.somacon.com/p520.php und http://stackoverflow.com/questions/21127052/php-mailparse-so-error-undefined-symbol-mbfl -convert-filter-flush –

+0

Hatte ein ähnliches Problem, überprüfen Sie Ihre Erweiterungen und deaktivieren Sie die Mail-Erweiterung. Möglicherweise ist MailParse in der Serverinstallation enthalten. Und Sie sollten den PHP-Code über den HTML-Code bewegen. – Nitin

Antwort

0

Es gibt ein paar Probleme mit dem, was Sie gerade tun. Zuerst haben Sie die Datei nur zum Lesen geöffnet, aber selbst wenn Sie dies ändern, können Sie nicht einfach eine Zeile durch eine längere Zeile in derselben Datei ersetzen. Damit Ihr aktueller Ansatz funktioniert, müssen Sie eine zweite Datei zum Schreiben öffnen und die geänderten Zeilen in der zweiten Datei hinzufügen, während Sie fortfahren. Aber solange die Dateien nicht sehr groß sind, sollten Sie in der Lage sein, die geänderte Datei einfacher zu erstellen:

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

übrigens die mailparse Warnung erscheint nicht, Sie auf den Code verwandt zu sein‘ Ich habe hier gepostet.

Verwandte Themen