Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Smilie Begrenzer Antworten
Smilie Begrenzer

MajorWindbeutel
Quasselstrippe


Beiträge: 335


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: 1330


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


Beiträge: 335


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


Beiträge: 335


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]","<a href=mailto:".$row['EMail'].">E-Mail</a>",$row['EMail']);}
else {$row['EMail'] = "<span style=\"text-decoration: line-through; \">EMail</span>";}

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:","<img src=\"smilies/20.gif\">", "$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


Beiträge: 335


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: 1508


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


Beiträge: 335


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


Beiträge: 335


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


Beiträge: 335


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: 1330


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


Beiträge: 335


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


Beiträge: 335


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
 

Antworten
Nach oben