WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Smilie Begrenzer » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von MajorWindbeutel
So hier ist der Script wie ich die Smilies zähle:

Da ich aber leider auch noch Standart Smilies hatte also diese:
usw aber zum Glück nur 5 davon habe ich das so gelöst:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
$smile1 = substr_count($nachricht,":-)");
$smile2 = substr_count($nachricht,":-D");
$smile3 = substr_count($nachricht,":-|");
$smile4 = substr_count($nachricht,";-)");
$smile5 = substr_count($nachricht,":-o");
$smile_gesammt = $smile1+$smile2+$smile3+$smile4+$smile5;


Die anderen 30 Smilies waren zum Glück leichter

1: 
2: 
3: 
4:
$smilies =preg_match_all ("/:[\.a-z0-9]+:+?/", $nachricht, $out);
$count_smilies = count($out[0]) + $smile_gesammt;


Dann hat man in der Vari ($count_smilies) die Anzahl aller Smilies, also auch diese .
Allerdings müssen bei diese Form die Smilies so ausshen :

:blub:

Denn er such nach Strings die mit : anfagen in der mitte die erlaubten Buchstaben und Zahlen haben und am ende eine : haben.

So ich hoffe man kann mich verstehen wenn nicht fragt nach.

von MajorWindbeutel
Habs mit RegExp gemacht werd denn Code morgen posten bin zur Zeit am Server einrichten.

Danke an alle die geholfen haben!
von Can
Geht mit preg_match_all bestimmt auch, aber ich kenn mich mit RegExps nicht aus. Wenn du's damit nicht machen willst, schreib dir ne eigene Ersetzungsroutine, sprich: Du hast die Smileys in nem Array und suchst dann in der Schleife, ob noch ein Smiley in dem Text vorkommt, wenn ja, ersetzt du den und erhöhst den Zähler. Falls Zähler <= 3, wird Smiley durch den jeweligen HTML-Code, ansonsten durch nen Leerstring ersetzt. So in etwa kannst du das machen.
von MajorWindbeutel
So dan ich RegEx nicht raffe mach ich das so:

$a = substr_count("$nachricht", ":mic:");
$b = substr_count("$nachricht", ":arm:");

Ich schreibe für jeden smilie diesen Kram pluse ;) das dann alles und weiß wieviel Smilies da sind.

Aber bevor ichd as jetzt 30mal schreib wollt ich fragen ob man das evtl durch ne Funktion verkürzen könnte wenn ja sagt mir wie.

Danke
von MajorWindbeutel
Ich weiß awrum meine Schleife net geht der probier 3mal alle Smilies umzusetzen hmm.

Giibt es icht ne einfacher möglichkeit ohne Reg.....?

Nach oben