mit PHP SQL text mit "enter" anzeigen lassen.
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzeigen
artikel
auslese
befehl
benutzen
code
dank
ersetzen
frage
funktion
http
sache
schauen
schleife
string
test
text
treffer
verwenden
zeichenkette
-
Hallo ich habe mal 3 Fragen. Ich schreibe gerade ein Forum und ein kleines Wiki dazu. Und ich bräuchte jetzt mal ein paar PhP befehle.
1. Wenn ich einen Text in meine SQL Tabelle eingebe. (Typ=text) Da steht er mit Leerzeilen drin. Und wenn ich ihn danach wieder per PhP Befhele aus der MySQL Datenbank auslese, sind die "Enter" Befehle weg. Ich möchte jetzt nicht in den Text immer ein </br> einfügen. Damit es vernünftig angezeigt wird.
Zum auslesen benutze ich eine "while" schleife und zum anzeigen einfach den <div> Befehl. Kann mir wer sagen, wie ich jetzt die "Enters" anzeigen lassen kann?
2. Möchte ich wenn bestimmte wörter fallen sie ersetzen durch einen Link. Also immer wenn das Wort Test steht es durch den link
<a href=\"index.php?go=test"><b>Test</b></a>
geht dass?
Danke für eure antworten. Mist mir ist die 3. Frage entfallen. vieleicht später. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das mit den <br> ist ganz einfach, da hat PHP eine Funktion:
nl2br($string) http://www.php.net/manual/de/function.nl2br.php
Das andere kannst du einfach mit zwei Arrays und preg_replace machen
http://www.php.net/preg_replace
z.B. so um Smileys als smiley darzustellen:
<?php //das suchmuster $smileys[0] = "/;\)/"; $smileys[1] = "/:mad:/"; //die Ersetzung $smileytag[0] = '<img src="smileys/smiley.png" alt="smiley" border="0">'; $smileytag[1] = '<img src="smileys/mad.png" alt="mad" border="0">'; $zeichenkette = preg_replace($smileys, $smileytag , $zeichenkette); ?>
Nur so nebenbei: du solltest alle zusätzlichen \ mit stripslashes($string) wegmachen.
Gruß, Prog -
Natürlich geht das.
Zu 1.: Hab nicht genau verstanden, was Du suchst, aber vielleicht die nl2br()-Funktion?
Zu 2.: Dafür sollte ein einfaches str_replace() genügen.
Edit: Okay, 2 Minuten zu langsam ;) Trotzdem würde ich für Punkt 2 auf str_replace zurückgreifen - ich zitiere http://de.php.net/str_replace:
If you don't need fancy replacing rules (like regular expressions), you should always use this function instead of ereg_replace() or preg_replace().
Beitrag geändert: 18.10.2008 14:48:39 von tavern -
@tavern:
Das ganze gibts auch auf deutsch:
Wenn Sie keine ausgefallenen Ersetzungsregeln (wie Reguläre Ausdrücke) benötigen, sollten Sie immer diese Funktion anstelle von ereg_replace() oder preg_replace() verwenden.
Da hast du zwar vollkommen recht, aber gerade bei so Link sachen ist es evtl sinnvoll preg_replace zu benutzen, da man da auch Treffer verwenden kann, und somit flexibler ist.
Gruß, prog -
@tavern:
Das ganze gibts auch auf deutsch:
Da hast du zwar vollkommen recht, aber gerade bei so Link sachen ist es evtl sinnvoll preg_replace zu benutzen, da man da auch Treffer verwenden kann, und somit flexibler ist.
Gruß, prog
Ich weiß, aber nachdem ich halt grad die englische Seite offen hatte... so viel Eigeninitiative setz ich dann doch voraus, habs ja extra noch verlinkt.
Und natürlich ist es bei Link-Sachen eventuell sinnvoll, preg_replace zu benutzen, weil man im Normalfall den gefundenen Text weiterverwenden will. In diesem Fall ist das jedoch vollkommen unnötig ;)
-
Danke ihr beiden, genau das habe ich gesucht. Wobei ich mir beim str.replace nicht sicher bin ob es nicht etwas viel ist. Wenn ich dann 50 Artikel habe, und immer überprüfen lassen will, ob er es durch den Link zu einem Artikel ersetzen muss. Ob das dann nicht zu viel für den Server wird.
Aber mal schauen, ich kann es ja immernoch raushauen, wenn die anfragen zu lange dauern. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage