2016-10-25 3 views
0

Ich habe mich gefragt, was ich in meinem Code fehlt. Ich habe ein großes Formular, das alle Werte auf .csv file drückt. Es gibt Instanzen von textareas und jedes Mal, wenn ich etwas Textinhalt und fügen Sie einen Zeilenumbruch (drücken Sie die Enter-Taste) innerhalb der .csv Dokument, jede Zeile von Text nach dem ersten bricht den Fluss der Werte innerhalb der .csv, und startet eine neue Zeile.PHP - Entfernen von Zeilenumbrüchen aus dem Textbereich

Ich habe versucht zu prüfen, den Wert über PHP nehmen und Leerzeichen oder Pausen entfernen, aber es scheint nicht zu funktionieren.

Kann mir jemand sagen, was ich vermisse?

HTML:

<textarea id="fianlCommentsText" name="fianlCommentsText"></textarea> 

PHP:

$finalCommentsText = $_POST["finalCommentsText"]; 
function finalCommentsLineCheck() 
    { 
     global $finalCommentsText; 
     preg_replace("/\r|\n/", "", $finalCommentsText); 
    } 
    finalCommentsLineCheck(); 

Antwort

1

Die "Wahl" von \ r oder \ n erfordert Pars:

preg_replace("/(\r|\n)/", "", $finalCommentsText); 

bereiten?

+0

Ich werde es jetzt versuchen! –

+0

Das hat leider nicht funktioniert. –

+0

AH, dagnabbit, typo ... fixing antwort jetzt. – WEBjuju

0

Um mehrzeilige Felder in csv zu ermöglichen, müssen Sie sie mit "

Zum Beispiel zitieren:

12345,"multiline 
text",another_field 

Falls Sie Anführungszeichen in Ihrem Text haben, entkommen sie nur mit einem anderen Zitat:

12345,"27"" monitor 
TFT",another_field 

Auf diese Weise können Sie die Zeilenumbrüche im Text behalten.

+0

Es tut mir leid, dass ich nicht verstehe, was Sie zu erklären versuchen. Es ist eine Eingabe, also habe ich keinen vorherigen Zugriff, da der Benutzer schreibt, aber meinst du den Abschnitt, wo ich meine Variablen an die .cvs drängen muss, in Anführungszeichen, so? $ csvData = $ firstName. ",". $ Nachname. ","."$ homeAddress" –

+1

Ja, bevor Sie das mehrzeilige Feld in den csv schreiben, schließen Sie es in doppelte Anführungszeichen ein - auf diese Weise können Sie die Zeilenumbrüche so beibehalten, wie sie vom Benutzer eingegeben wurden. –

+0

@theodoresteiner - was Danny_ds vorschlägt, ist, dass Sie die \ r und \ n nicht mehr entfernen, sondern Ihren csv-Speichercode aktualisieren, damit er gespeichert werden kann. Sie können Zeilenumbrüche in Ihrem CSV haben, müssen Sie nur ordnungsgemäß "entkommen", so dass sie nicht den CSV brechen. Sie sollten sich http://php.net/fputcsv ansehen, die Ihnen bei der Flucht behilflich sein wird. – WEBjuju

0

In meinem Fall habe ich auf diese Weise gelöst:

Ausgabe in ein Textfeld die ‚\ n‘ Zeichen zu entfernen:

<!-- this textarea will show blank carriage return and not \n characters --> 
<textarea class="settinginput" id="message" name="message"> 
<?php echo str_replace('\n',"\n",$message); ?> 
</textarea> 

Nach einreichen hier ist, wie der Wagen kommt mit dem ‚\ ersetzen n‘nicht erweiterten Zeichen:

str_replace("\r\n",'\n',$_POST['message']) 

Beachten Sie, dass die ersetzen-Funktion doppelte und einfache Anführungszeichen verwendet, um die Zeichenfolge ohne Erweiterung für Escape-Sequenzen zu speichern.

Verwandte Themen