2009-08-05 8 views
0

Ok, also im Grunde benutze ich den Fckeditor als eine Möglichkeit für meinen Benutzer, einige Informationen einzugeben. Wenn es in der DB gespeichert ist, wird es wie so gespeichert,Datenbank Blob hält Mulline HTML-Code, wie kann ich dies in eine Zeile mit PHP konvertieren

<p> </p> 
<div style=\"margin: 0in 0in 10pt\"><b><span style=\"color: #666666\">Test Title</span></b><span style=\"color: #666666\"> <br /> 
Address goes here <br /> 
This is some lengthy text about the location. This is some lengthy text about the location. This is some lengthy text about the location. This is some lengthy text about the location. This is some lengthy text about the location. This is some lengthy text about the location.</span></div> 

Wie auch immer, wenn ich Ausgabe dieser Text in eine Funktion gesendet wird, die es braucht, und erzeugt eine punktgenaue auf einer Karte google und Text geht innen des Popup-Fensters. Das Problem, das ich in laufen lasse, ist, dass, wenn die PHP ist die Javascript-Funktion gibt es nennen wie folgt aussieht,

showAddress(" <p> </p> 
<div style=\"margin: 0in 0in 10pt\"><b><span style=\"color: #666666\">Test Title</span></b><span style=\"color: #666666\"> <br /> 
Address goes here <br /> 
This is some lengthy text about the location. This is some lengthy text about the location. This is some lengthy text about the location. This is some lengthy text about the location. This is some lengthy text about the location. This is some lengthy text about the location.</span></div>"); 

Der Raum, nachdem die Zeilenumbrüche und im Grunde, wenn Sie die Eingabetaste drücken verursacht das Javascript mit einem ‚ungekündigten zu beenden Zeichenfolgenliteral '.

Danke,
Levi

Antwort

2

Verwenden str_replace() neue Linien zu entfernen:

str_replace(array("\n", "\r"), '', $someString); 

Auch da Sie Text speichern, würden Sie besser sein, die Art TEXT Daten gegenüber dem BLOB als TEXT zu verwenden ist locale-aware.

2

$value = str_replace(array("\n", "\r"), "", $string);

Aktualisiert weil Andrew Moore der Schlüssel \ r gedacht. Sie müssen jedoch kein Array im Ersetzungsargument verwenden.

Dadurch werden alle Zeilenumbrüche durch nichts ersetzt.

+0

Oh wow, ich habe nicht wirklich die Verbindung gemacht, dass ein Newline eingefügt wurde. Ich hätte auch nicht gedacht, dass Sie Newline-Zeichen ersetzen können, die in Javascript mit PHP gemacht werden. – Levi

1

Ich denke, Sie möchten ein Leerzeichen und nicht und leere Zeichenfolge verlassen, so dass der Text nicht nur zusammen laufen.

und Perl Erbe ist von, würde ich

$ cleanedString = preg_replace ("/ [\ n \ r] + /", "", $ stringWithReturns) verwenden;

Dies wird mehrere Returns erfassen und durch ein einzelnes Leerzeichen ersetzen.

1

sollten Sie json_encode verwenden, um Ihr HTML, um sicherzustellen, in Javascript geht richtig:

<script> 
showAddress(<?php echo json_encode($htmlFromDB); ?>); 
</script> 

Newlines sollte kein Problem mehr sein.

+0

Schön, PHP denkt an alles. Ich stelle fest, dass die php.net-Seite sagt: "PHP 5> = 5.2.0", also ist es nur in relativ neuen PHP-Installationen verfügbar, denke ich –

Verwandte Themen