2017-06-06 3 views
-1

Ich erhalte Daten aus einer MSSQL-Datenbank mit PHP (mit PDO sqlsrv Treiber).php - nicht in der Lage, eine Zeichenfolge durch neue Zeilen aus der Datenbank zu trennen

Ich muss die Zeichenfolge durch neue Zeile teilen.

Im DB sieht die Zeichenfolge wie folgt:

the string in the database

ich ohne Erfolg folgendes versucht:

$text = explode("\n\n",$text); 
$text = preg_split("/\n\n/",$text); 

Oder

$text = explode("\n",$text); 
$text = preg_split("/\n/",$text); 

Wenn ich den Code debuggen und wenn ich den Text in den Browser drucke, erscheint die Zeichenfolge als ein li ne.

text echoed to the broswer

Aber wenn ich das Element in Chrom kontrollieren, ist es genau wie in der Datenbank angezeigt:

text inspected with chrome

ich den Text aus dem Inspektor zu einem Regex Tester kopiert und die Zeilenumbrüche wurden erfolgreich gefunden! Aber der "Echo" -Text war in einer Zeile.

+1

Blick auf Ihre HTML-Quelle, ich bin sicher, Die Pausen sind da drin. Verwenden Sie 'nl2br()' für die Bildschirmausgabe oder '
' s. –

+0

wie Sie diese Zeichenfolge in die Datenbank einfügen? Hast du eine neue Zeile hinzugefügt? oder br tag? –

+0

@ Fred-ii- Well nl2br() fügt tatsächlich
an den richtigen Stellen, aber dann muss ich versuchen, und teilen Sie die Zeichenfolge mit
, die ein bisschen chaotisch ist ... –

Antwort

2

Versuchen Sie, das neue Zeilenzeichen durch Komma (,) oder etwas anderes Sonderzeichen zu ersetzen.

preg_replace("/((\r?\n)|(\r\n?))/", ',', $input); 

Dann versuchen wie diese explode(',', $input);

oder zu explodieren, wenn Ergebnismenge Datei gehen durch diesen Beitrag

explode(PHP_EOL, $input); 

https://stackoverflow.com/a/29471912/4895810

+0

Danke, endete mit dieser Methode. Was ist seltsam, dass 'preg_split ("/((\ r? \ N) | (\ r \ n?))/", $ Text);' hat einfach nicht funktioniert! Naja... –

Verwandte Themen