Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Mahlzeit,

ich hab ein Problem, was ich einfach irgendwie nicht lösen kann.

Vorab möchte ich darauf hinweisen das ich die funktion "wordwrap()" nichts anfagen kann Erklärung dazu später.

Also hier erstmal das Problem bzw. die Beschreibung.

Ich habe eine funktion


function user_insert_bbcode_off($string) {

$string = stripslashes($string);
$string = htmlentities($string);
$string = nl2br($string);

$synonym = array('Wink'=>'true.gif','Smile'=>'lough.gif','Very Happy'=>'giigle.gif','Razz'=>'kidding.gif',''=>'shock.gif',':\('=>'sad.gif',';\('=>'wine.gif',')\('=>'angry.gif','X\('=>'badly.gif','=)'=>'notme.gif',':/'=>'nc.gif',':\['=>'sure.gif');

foreach($synonym as $k => $v) {

$string = ereg_replace($k, '<img src=images/smileys/'.$v.'>', $string);

}

return $string;
}
[/PHP]

welche mir einen vom User eingegebenen String sehr schön in "nicht ausführbare HTML/PHP/SCRIPT" tags umwandelt sowie alle synonyme smiley attribute in die dafür vorgesehenen <img´s> ersetzt.

Ich habe allerdings das Problem, das zusammenhängende Zeichen die länger als 16 sind also z.B. "WWWWWWWWWWWWWWWWWWWWWWWWWWWWW" mein Template zerreißen. Somit muss es gebrochen werden. Klar - wordwrap wäre hier möglich. Aber jetzt kommt das weitere Problem. Wenn ein Benutzer "so unglücklich' einen Smiley z.B. in 16 und 17 Zeichen gebaut hat, bricht der Smiley durch und ich habe in der einen Zeile ein ";" und in der nächsten ein ")" das soll verhindert werden. Ferner dürfen alle Sonderzeichen auch solche wie ® oder • NICHT 3mal hintereinander ausgegeben werden d.h. sobald mehr als 3 hintereinander sind müssen diese auf 3 reduziert werden.

Ich hänge da schon ne ganze weile dran weil ich irgendwie immer denkfehler habe.

Vllt. kann mir jemand helfen

Gruss Sven

Geschrieben

du könntest z.b. das zeichen in 16/17 auswerten und wenn es ein sonderzeichen ist dannlässt den zeiger vor das letzte auftreten eines ":" oder ";" springen, oder welche zeichen da sonst so bei dir als smileyauszeichnung dienen.

dann lässt alles was rechts des zeigers ist in der nächsten zeile ausgeben. man könnte das auch mit dem letzten leerzeichen machen, aber gibt ja auch viele die smileys direkt hinter wörter setzen, könntest also ausversehen auch wörter umbrechen.

wegen der eingabe, wäre es da nicht möglich das schon auf clientseite zu verhinden?

Geschrieben

thx 4 reply ...

joa an clientseitig habe ich auch schon gedacht allerdings wollte ich sehr wenig bis garkein JS verweden ...

Überleg einmal, ein User mit JS = off kann quasi das form net benutzen und das fände ich traurig ...

Ich habs mittlerweile gelöst allerdings nen bisl "ünschön" nur ich habe keine lust mich die ganze zeit an so einem problem fest zuhalten ...

habe einfach die ausgabe mit nem div verziert und nen style="width:180; overflow:auto" gemacht ... siehst zwar net so schön aus aber funktioniert soweit :P

gruss sven

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...