HTML, PHP und MySQL Zeilenumbrüche?
Moin moin.
Mich beschäftigt folgende Frage:
Wie schaffe ich es, dass ich mit meinem PHP Script einen Zeilenumbruch aus einer MySQL Datenbank lese und den Zeilenumbruch auch in HTML setzte? Ich habe soweit die Verbindung fertig, mir wird der Text aus der Datenbank durch den PHP Script in HTML angezeigt. Ja, ich bin ein Anfänger in Web-Development, sry.
3 Antworten
Es gibt dazu extra eine PHP-Funktion (ob die aber hilft, wenn auch str_replace nicht hilft, müsstest du ausprobieren): http://php.net/manual/de/function.nl2br.php
Das kommt darauf an, wie der Zeilenumbruch in deiner MySQL-Datenbank gespeichert wird ;-)
Im Normalfall werden Zeilenumbrüche in einer MySQL-Datenbank im Feld als \n gespeichert.
Beim Auslesen des Feldes und schreiben in eine HTML-Datei musst du nun nichts weiteres tun, als das \n in das HTML-bekannte <br> umzuwandeln.
Dazu kannst du dir das ganze als String übergeben lassen und dann in PHP alle \n durch <br> ersetzen:
<?
$string=str_replace("\n","<br>",$string);
?>
// Create connection
$conn = new mysqli($mysql_host, $mysql_user, $mysql_password,$mysql_database);
mysqli_query($conn, "SET NAMES 'utf8'");
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT Titel,Text,Autor,Datum FROM employee";
$result = $conn->query($sql);
$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
if ($outp != "") {$outp .= ",";}
$outp .= '{"Titel":"' . $rs["Titel"] . '",';
$outp .= '"Text":"' . $rs["Text"] . '",';
$outp .= '"Autor":"' . $rs["Autor"] . '",';
$outp .= '"Datum":"' . $rs["Datum"] . '"}';
}
$outp ='{ "records":[ '.$outp.' ]}';
$outp = str_replace("\n","
",$outp);
$conn->close();
echo($outp);
?>
und HTML: http://pastebin.com/vEsUgCUn
JavaScript:
app.controller('customersCtrl', function($scope, $http) {
$http.get("meinedomain.de/php.php")
.success(function (response) {$scope.data = response.records;});
});
Wenn keine Zeilenumbrüche abgespeichert sind, kannst du in PHP Zeilenumbrüche erzwingen.
$text = "Der schnelle braune Fuchs sprang über den faulen Hund.";
$neuertext = wordwrap( $text, 20, "<br />\n" );
echo $neuertext;
ich möchte aber ungern für jeden text diesen php code neu machen.
Danke. Leider werden mir so keine Zeilenumbrüche in meine HTML Cards gezaubert.. Noch eine Idee? :D