Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » Noch mal ne doofe kleine Frage!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.01.2005, 05:50 Uhr
Donar



So, ich hab mir jetzt ein Gästebuch mit php und MySQL geschrieben! Das hat aber noch nen kleinen Bug!

Wenn ich in den Nachrichtentext Zeilenumbrüche scheibe wird es in der MySQL Datenbank mit diesen Zeilenumbrüchen angezeigt! Aber auf der Seite wird es ohne Zeilenumbrüche ausgegeben!

könnt ja ma bei Board23.de im GB schauen und was nettes reinschreiben! Dann seht ihr was ich meine! Aber wahrscheinlich ist das ein bekanntes Problem! *g

Naja, bis denn dann
Donar
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.01.2005, 09:29 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi, normale linebreaks ( '\n' ) werden von HTML nicht interpretiert, d.h du musst in deinem Code in dem du die Einträge darstellst, den Text durch nl2br jagen
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.01.2005, 09:36 Uhr
Pablo
Supertux
(Operator)


Du musst den Inhalt parsen, XHTML ist eine XML Sprache, die auf Tags reagiert und nicht auch Zeileunbrüche. Ein Zeilenunbruch macht man mit <br /> (<br> wenn du noch HTML benutzt).

Aus diesem Grund, wenn du nur htmlentities benutzt, dann werden nur die Sonderzeichen wie ü durch &uuml; ersetzt, Zeilenunbüche und leere Zeile jedoch nicht, das musst du selber machen. Aus diesem Grund kannst du 1000 Zeileunbüche eingeben, HTML reagiert drauf nicht.

Ich benutze immer die superhtmlentities, die ich mir selber gebalstelt hab.


PHP 4:
<?php

function superhtmlentities($txt)
{
    $reg = array(
                  "/  /", /* 2 leere Zeichen */
                  "/\r/", /* windows carriage return */
                  "/\n/", /* newline */
                  "/\t/"); /* tabulator */
    $chg = array(
                  "&nbsp;&nbsp;",
                  "",
                  "<br />",
                  "&nbsp;&nbsp;&nbsp;&nbsp;");

    return preg_replace($reg, $chg, htmlentities($txt));
}
?>



Also, bei deinem Gästebuch musst du den Inhalt der Einträge mit superhtmlentities ausgeben lassen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.01.2005, 19:52 Uhr
~Gast
Gast


Wieso preg_replace? Oo Das ist doch viel langsamer als str_replace und Bedingungen benutzt du in deinem regulären Ausdruck auch nicht, deswegen kannst du dir das sparen. Verwende daher lieber str_replace. Nur so ein Tipp am Rande.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.01.2005, 08:56 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


in dem fall ist preg_replace schneller, da er ja 4 dinge direkt ersetzt, ansonsten wären es 4x str_replace aufrufe, kommt im endeffekt wahrscheinlich auf die gleiche geschwindigkeit (außerdem wenn man die regexp-engine eh schon z.b in nem quellcodeparser benutzt, ist die eh geladen ...)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.01.2005, 19:20 Uhr
~Gast
Gast


Wieso 4x str_replace aufrufen? str_replace kann auch mit Arrays umgehen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.01.2005, 21:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


jo aber indirekt ruft es dann 4x str_replace auf :P da ist der regexp eigentlich schneller, wenn eben z.b vorher eh schon regexp benutzt wurde ist die regexp-engine eh schon geladen
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.01.2005, 21:13 Uhr
~Gast
Gast



Zitat:
Falls Sie keine ausgefallenen String-Ersetzungen brauchen, sollten Sie immer dieser Funktion den Vorzug vor ereg_replace() oder preg_replace() geben.


Ein Zitat von www.php.net bezüglich der Funktion str_replace.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
17.01.2005, 22:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


jo natürlich, nur ist es ab 4 ersetzungen schon ausgefallen

Außerdem denke ich eh, wie schon ca 100.000.000.000 erwähnt, die regexp-engine eh geladen, dann ist diese sogar schneller ... :P (wenn er z.b vorher schon urls o.ä parst, selbst wenn dies danach geschehen sollte ist er trotzdem schneller, da er dann danach nicht mehr die regexp laden muss sondern gleich jetzt läd, und somit der aufruf der str_replace-funktionen wegfällt)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: