Smilie Begrenzer |
MajorWindbeutel
Quasselstrippe Threadstarter
Beiträge: 328 |
HI
ich brauche einen Smilie begrezer in meienm GB der nur 3 Smilies zulässt.
Das wollte ich folgender Maßen lösen mit preg_replace die smilies umwandeln
und nur 3 zulassen und die anderen mit str_replace in einen Leerstring zu verwandeln
So zu Preg... Wie kann ich alle Smilies mit einer Anweisung umwandeln sonst geht das Limit nicht
und wie bzw woher weiß str_.... welcher er noch umwandeln muss.
Ich hoffe ihr könnt mir helfen
---
Mit freundlichen Grüßen
MajorWindbeutel
Meine Homepage
Diese Nachricht wurde geändert von: MajorWindbeutel |
 Profil
E-Mail
Website
Editieren
Zitieren
|
Can
Halbgott
Beiträge: 1324 |
Schreib dir doch ne eigene Ersetzungsroutine, da zählst du dann mit und lässt nur die ersten 3 Smileys ersetzen...
---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox
|
 Profil
E-Mail
Editieren
Zitieren
|
MajorWindbeutel
Quasselstrippe Threadstarter
Beiträge: 328 |
ICh weiß nur leider nicht wie ich das anstellen soll.
Soll ich dei Smilie Codes schon beim Reinschreiben ändern?
Oder wenn sie aus der DB aufgerufen werden?
Es sollen pro Beitrag nur 3 zugealssen sein die anderen sollen Lerstrings werden.
---
Mit freundlichen Grüßen
MajorWindbeutel
Meine Homepage
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
MajorWindbeutel
Quasselstrippe Threadstarter
Beiträge: 328 |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11: | while($row = mysql_fetch_array($result)) {
if($row['EMail']){$row['EMail'] = str_replace("$row[EMail]","E-Mail",$row['EMail']);}
else {$row['EMail'] = "EMail";}
if($row['Betreff']){$row['Betreff'] = str_replace("$row[Betreff]","".$row['Betreff']." |",$row['Betreff']);}
// SMilie Begrenzer
$i = 0;
while($i<3){
$row['Nachricht'] = eregi_replace(":mic:","", "$row[Nachricht]");
$i++; |
So das ist der Ausschnit aus meinem Script
Soweit bin ich aber es klppt einfach net er wandelt schön brav alle smilie um er soll aber in jedem Beitrag nur 3 umweandeln und nicht 5 oder 6 usw
}
---
Mit freundlichen Grüßen
MajorWindbeutel
Meine Homepage
Diese Nachricht wurde geändert von: Philipp Gérard |
 Profil
E-Mail
Website
Editieren
Zitieren
|
MajorWindbeutel
Quasselstrippe Threadstarter
Beiträge: 328 |
Hmmm weiß keiner warum das Net klappt?
---
Mit freundlichen Grüßen
MajorWindbeutel
Meine Homepage
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
Philipp Gérard
Foren-Team
Beiträge: 1502 |
preg_match_all
---
Arbeit ist das Feuer der Gestaltung. - Marx
Diese Nachricht wurde geändert von: Philipp Gérard |
 Profil
E-Mail
Website
Editieren
Zitieren
|
MajorWindbeutel
Quasselstrippe Threadstarter
Beiträge: 328 |
Ich hab nur leider so 20 SMilies ich muss die doch alle in einem preg_match verknüpfen oder?
Ich kapier den Syntax leider nicht :(
Die manual hiflt mir leider nicht kann mir dass jmd erklären?
Danke
---
Mit freundlichen Grüßen
MajorWindbeutel
Meine Homepage
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
MajorWindbeutel
Quasselstrippe Threadstarter
Beiträge: 328 |
Ich weiß awrum meine Schleife net geht der probier 3mal alle Smilies umzusetzen hmm.
Giibt es icht ne einfacher möglichkeit ohne Reg.....?
---
Mit freundlichen Grüßen
MajorWindbeutel
Meine Homepage
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
MajorWindbeutel
Quasselstrippe Threadstarter
Beiträge: 328 |
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
---
Mit freundlichen Grüßen
MajorWindbeutel
Meine Homepage
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
Can
Halbgott
Beiträge: 1324 |
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.
---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox
|
 Profil
E-Mail
Editieren
Zitieren
|
MajorWindbeutel
Quasselstrippe Threadstarter
Beiträge: 328 |
Habs mit RegExp gemacht werd denn Code morgen posten bin zur Zeit am Server einrichten.
Danke an alle die geholfen haben!
---
Mit freundlichen Grüßen
MajorWindbeutel
Meine Homepage
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
MajorWindbeutel
Quasselstrippe Threadstarter
Beiträge: 328 |
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.
---
Mit freundlichen Grüßen
MajorWindbeutel
Meine Homepage
Diese Nachricht wurde geändert von: MajorWindbeutel |
 Profil
E-Mail
Website
Editieren
Zitieren
|