2017-11-30 2 views
0

Ich poste einige Zeichenfolge (wie "Hallo \ n Welt") zu einem PHP-Skript, dann senden Sie diese Daten an eine API, aber die API scheint \ n nicht zu erkennen und nicht zu machen neue Zeilen und drucke sie so wie sie sind ("Hallo \ n Welt"). das ist, wie ich es tun:neue Zeile ( n) in PHP empfangen Postdaten

uploadPhoto($photo->getFile(), ['caption' => $_POST['caption']]); 

aber wenn ich es tun:

uploadPhoto($photo->getFile(), ['caption' => "Hello \n World"]); 

die API erkennt es und zeigt:

Hallo

Welt

Was soll ich den $ _POST ['caption'] Teil machen, damit das funktioniert?

+0

hast du nl2br() verwendet – seravee

+0

Woher kommt '$ _POST ['caption']'? Ein Formulardruckfeld? Wenn ich es richtig verstehe, schreibst du '\ n' in einer Form und erwartest, dass es sich in eine neue Zeile verwandelt. – sidyll

+0

@sidyll Ich poste es von Android-Gerät mit Retrofit, ich mache die Zeichenfolge ("Hello \ n World") und posten es. Es gibt keine HTML-Form und HTML-Ausgabe. –

Antwort

0

Ihre Zeichenfolge enthält wahrscheinlich die zwei Zeichen Backslash und n. Sie werden nur dann als eine Escape-Sequenz interpretiert (die das Newline-Zeichen generiert), wenn PHP eine Zeichenfolge direkt im Code schreibt. Ihre Eingabe ist nur eine Zeichenfolge, die empfangen wurde, keine PHP-Zeichenfolge in doppelten Anführungszeichen.

Wenn Sie nur über neue Zeilen kümmern, Sie eine einfache str_replace() verwenden:

$caption = str_replace('\n', "\n", $_POST['caption']); 
uploadPhoto($photo->getFile(), ['caption' => $caption]); 

Beachten Sie die Verwendung von einfachen und doppelten Anführungszeichen. Der erste Fall ähnelt Ihrer Eingabe.

+0

Vielen Dank, es hat funktioniert. –