Tutorial und str_replace
lerne-php
- php
0 Dogfish
hi,
ich habe bei http://www.php-resource.de/ ein tutorial gefunden, in dem kommt folgende Zeile vor:
<?php
function textrep($text) {
$text = str_replace('\r\n','<br>',$text);
}
?>
Nun ist das Problöem, ich habe versucht die Funktion zu verwenden:
$text = textrep($result["text"]);
nur ist die Variable $text leer..... :(
was tun?
Ich ahbe auch schon im selfphp nacgeschaut, theoratisch müsste das so stimmen....:(
Hallo du da draußen,
<?php
function textrep($text) {
return str_replace('\r\n','<br>',$text);
}
?>
Ohne das return hat die Funktion keinen Rückgabewert, folglich wird die Variable leer. So liefert sie das Ergebnis zurück.
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Dogfish
hi,
ich muss das problem leider etwas verallgemeinern:
Ich möchte durch str_replace einen text, der aus einer mysql-Datenbank geholt wird so formatieren, dass in den Quelltext immer dort ein <br> eingesetzt wird wenn man im eingabefeld mit dem man das in die Datenbank geschrieben hat RETURN gedrückt hat.
Soweit ich weis wir dann in der Datenbank ein \r\n gespeeichert.
Ich habe es mit dieser Funktion versucht:
function textrep($text) {
$text = str_replace('\r\n','<br>',$text);
}
und dann das Ergebnis $result["text"] aus einem Select Statement damit formatiert:
$text = textrep($result["text"]);
echo $text;
Wo liegt der Fehler? Wie mache ich es richitig?
P.S.: Ich möchte das nicht beim eintragen machen, da ich im Editieren-Feld kein '<br>' drinstehen haben will....
danke für die Hilfe...
Hallo lerne-php,
^^^^^^^^^ </faq/#Q-12>
Soweit ich weis wir dann in der Datenbank ein \r\n gespeeichert.
das kommt darauf an, von was für einem Computer die Zeilenumbrüche kommen.
function textrep($text) {
$text = str_replace('\r\n','<br>',$text);
wenn du einfache Anführungszeichen verwendest, sucht php wirklich nach der Zeichenkette "\r\n" und nicht nach einem Zeilenumbruch - du musst Doppelte Anführungszeichen verwenden, und um gleich noch alle anderen Arten von Zeilenumbrüchen zu erwischen das verwenden:
$txt = preg_replace("/(\015\012)|(\015)|(\012)/","<br />",$txt);
(siehe auf http://de2.php.net/nl2br den Kommentar von CK1)
das ein return $text; fehlt hat dir Dogfish ja schon gesagt
}
Grüße aus Nürnberg
Tobias