str_replace auch für die Trennung von zu langen Wörtern?

josDesign

Erfahrenes Mitglied
Hallo ich programmier mir grad da anhand verschiedener Tutorials zu PHP eine Shoutbox für meine Gallerie dazu mit integr. Benutzererkennung (also wenn der Benutzer in der Gallerie eingeloggt ist, schreibt dieser automatisch mit seinem Username in die Shoutbox.)

Jetzt bin ich gerade dabei die Smilies einfügen zu lassen mittels:

HTML:
    $message = eregi_replace($badword[0],$badword[1],$message);
 }

$message = str_replace(":)","<img src=\"/smilies/icon_smile.gif\" align=\"texttop\">",$message);
$message = str_replace(":D","<img src=\"/smilies/icon_biggrin.gif\" align=\"texttop\">",$message);
$message = str_replace(":roll:","<img src=\"/smilies/icon_rolleyes.gif\" align=\"texttop\">",$message);
$message = str_replace(":wink:","<img src=\"/smilies/icon_wink.gif\" align=\"texttop\">",$message);
$message = str_replace(":(","<img src=\"/smilies/icon_cry.gif\" align=\"texttop\">",$message);
$message = str_replace(":pfeil:","<img src=\"/smilies/icon_arrow.gif\" align=\"texttop\">",$message);

So nun nun möchte ich noch bevor Smilies hinzugefügt werden alle Wörter die länger als 20 Zeichen sind nachdem 20. Zeichen geteilt wird und ein Bindestrich dort eingefügt wird. und evtl ein Zeilenwechsel eingeleitet wird.

Mit bestem Dank im Vorraus... Vielleicht kann mir jemand helfen?

LieGrü
jos

Nur wie stell ich das an, ich versteh PHP nicht so ganz.. muss ich dazu sagen.
 
Mein Problem dürfte somit aus dem Weg geräumt sein, danke Dr. Dau, Sie haben mir geholfen.

Danke Herr Doktor! ;-]

Vielen Dank!


EDIT:

War doch nicht so einfach! Es werden nicht nur Wörter die länger als 20 Zeichen lang sind "geteilt" sondern einfach alle 20 Zeichen setzt wordwrap eine neue Zeile mit an Bindestrich!

Hier nun mein jetziger Code: Was kann sollte ich da umschreiben?

HTML:
$message = wordwrap( $message, 18, "&ndash;<br>", 1);
$message = str_replace(":)","<img src=\"/smilies/icon_smile.gif\" align=\"texttop\">",$message);
$message = str_replace(":D","<img src=\"/icon_biggrin.gif\" align=\"texttop\">",$message);
$message = str_replace(":roll:","<img src=\"/icon_rolleyes.gif\" align=\"texttop\">",$message);
$message = str_replace(":wink:","<img src=\"/smilies/icon_wink.gif\" align=\"texttop\">",$message);
$message = str_replace(":(","<img src=\"/smilies/icon_cry.gif\" align=\"texttop\">",$message);
$message = str_replace(":pfeil:","<img src=\"/smilies/icon_arrow.gif\" align=\"texttop\">",$message);
 
Zuletzt bearbeitet:
Wordwrap mit Zeilenumbruch dient im Prinzip dazu, dass du keine Zeile mit mehr als n Zeichen zurückgeliefert bekommst. Wenn du den letzten Parameter von [phpf]wordwrap[/phpf] nicht auf 1 setzt, werden Wörter als Ganzes nicht getrennt, sondern immer nur nach einem Leerzeichen.

PHP:
<?php
echo wordwrap("Testtesttest", 4, "<br />\n", 1);
?>

Das würde zur Folge haben, dass das Wort auf jeden Fall nach 4 Zeichen getrennt wird.
 
Zurück