login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Smilies tellen

Offline Tuinstoel - 28/10/2005 12:23
Avatar van TuinstoelPHP expert Hoe kun je het aantal smilies tellen in een bericht?
Dus je hebt een array met smilie codes,
  1. $aSmilies = array(':D',':-)',':-(',':@');


En vervolgens type je een bericht in, dat wordt gepost, maar hoe kun je nou tellen hoevaak die smilies er dan in voorkomen?

16 antwoorden

Gesponsorde links
Offline nemesiskoen - 28/10/2005 12:39
Avatar van nemesiskoen Gouden medaille

PHP expert
  1. <?php
  2. //bericht = het bericht
  3. //smilie = array met smilies
  4. //capitals = moet er op hoofdletters worden gelet bij smilies (standaard true)
  5. function tel($bericht,$smilie,$capitals = TRUE) {
  6. if($capitals) {
  7. $function = "strstr";
  8. } else {
  9. $function = "stristr";
  10. }
  11. $teller = 0;
  12. if(is_array($smilie)) {
  13. for($i=0;$i<count($smilie);$i++) {
  14. if($function($bericht,$smielie[$i])) {
  15. $teller += tel($function($bericht,$smielie[$i]),$smilie[$i]) + 1;
  16. }
  17. }
  18. } else {
  19. if($function($bericht,$smielie)) {
  20. $teller += tel($function($bericht,$smielie),$smilie) + 1;
  21. }
  22. }
  23. return $teller;
  24. }
  25. ?>


Zou moeten werken
Offline Thomas - 28/10/2005 13:03 (laatste wijziging 28/10/2005 13:07)
Avatar van Thomas Moderator substr_count()?
preg_match_all()?
Offline Gerard - 28/10/2005 13:09
Avatar van Gerard Ouwe rakker koen houdt ervan om zelf functies van php na te maken 
Offline Ibrahim - 28/10/2005 17:29 (laatste wijziging 28/10/2005 20:09)
Avatar van Ibrahim PHP expert
  1. <?php
  2. //bericht = het bericht
  3. //smilie = array met smilies
  4. //capitals = moet er op hoofdletters worden gelet bij smilies (standaard true)
  5. function tel($bericht,$smilie,$capitals = TRUE) {
  6. if($capitals) {
  7. $function = "strstr";
  8. } else {
  9. $function = "stristr";
  10. }
  11. $teller = 0;
  12. if(is_array($smilie)) {
  13. for($i=0;$i<count($smilie);$i++) {
  14. if($function($bericht,$smilie[$i])) {
  15. $teller += tel($function($bericht,$smilie[$i]),$smilie[$i]) + 1;
  16. }
  17. }
  18. } else {
  19. if($function($bericht,$smilie)) {
  20. $teller += tel($function($bericht,$smilie),$smilie) + 1;
  21. }
  22. }
  23. return $teller;
  24. }
  25. ?>


sommige dingen heb je verkeerd geschreven bijv. smielie ipv smilie rest is ie slim bedacht 

Offline nemesiskoen - 28/10/2005 20:09
Avatar van nemesiskoen Gouden medaille

PHP expert
Spijtig dat je alleen maar fouten er uit kan doen die iedereen binnen de halve seconde ziet en niet in staat bent om hem gewoon te kunnen laten werken. Als je hem echt had getest had je gezien dat hij niet volledig werkte. En ik denk dat tuinstoel zo slim wel is om smielie in smilie te kunnen veranderen. Die fout is mij ook opgevallen toen ik hem testte. Maar hij geeft niets weer omdat er een oneindige loop vormt. Ik weet ook waarom en heb daarom ook een werkende oplossing gemaakt:

  1. <?php
  2. //bericht = het bericht
  3. //smilie = array met smilies
  4. //capitals = moet er op hoofdletters worden gelet bij smilies (standaard true)
  5.  
  6. function tel($bericht,$smilie,$capitals = TRUE) {
  7. if($capitals) {
  8. $function = "strstr";
  9. } else {
  10. $function = "stristr";
  11. }
  12. $teller = 0;
  13. if(is_array($smilie)) {
  14. for($i=0;$i<count($smilie);$i++) {
  15. if($function($bericht,$smilie[$i])) {
  16. $teller += tel($function($bericht,$smilie[$i]),$smilie[$i],$capitals) + 1;
  17. }
  18. }
  19. } else {
  20. $str2 = "";
  21. for($i=0;$i<strlen($bericht);$i++) {
  22. if($i >= strlen($smilie)) {
  23. $str2 .= $bericht{$i};
  24. }
  25. }
  26. if($function($str2,$smilie)) {
  27. $teller += tel($function($str2,$smilie),$smilie,$capitals) + 1;
  28. }
  29. }
  30.  
  31. return $teller;
  32. }
  33. echo tel("Hallo :D:D, hoe is het:):)? :) lol^^ ^^",array(":D",":)","^^"));
  34. ?>


Vraag me iegenlijk wel af of je begrijpt hoe het werkt^_^
Offline Ibrahim - 28/10/2005 22:29 (laatste wijziging 28/10/2005 22:57)
Avatar van Ibrahim PHP expert ik ga geen moeite doen om een script te testen die ik niet nodig heb... maar ja ik begrijp het wel

hoezo eigelijk Tuinstoel kan het wel snappen maar de buitenlander zeker niet? 
Offline Ultimatum - 29/10/2005 00:21
Avatar van Ultimatum PHP expert ik denk dat hij bedoelt dat tuinstoel de enige ervaring met php heeft (of script in het algemeen) en de fout wel zou kunnen ontdekken (dan wel door gwoon script grondig te bekijken of door een foutmelding als je het script uittest)

(denk ik hoor )
Offline Ibrahim - 29/10/2005 00:23
Avatar van Ibrahim PHP expert en ik heb dus geen ervaring met php?
Offline Ultimatum - 29/10/2005 00:30
Avatar van Ultimatum PHP expert laat ook maar, heb niet eens zin om in discussie te gaan, maar waar het op neer kwam was dat je alleen 1 foutje eruit kon halen en voor de post voor de rest niet nuttig was

dit is het laaste wat ik hier over zei, voordat ik hier een discussie van hier tot china en daar voorbij krijg:ooh:
Offline Gerard - 29/10/2005 01:16
Avatar van Gerard Ouwe rakker Je haalt alleen dingen eruit die je zo uit de code kan aflezen. Als je daadwerkelijk getest had om hem te verbeteren had je de andere fouten er ook wel uit kunnen halen, wanneer je ze zou herkennen.

Dat bedoelt koen ermee.
Offline Ibrahim - 29/10/2005 01:24
Avatar van Ibrahim PHP expert ooh volgende keer dat koen een functie schrijft zal ik hem testen of ie klopt is dat goed koen word je dan blij? 
Offline nemesiskoen - 29/10/2005 11:29
Avatar van nemesiskoen Gouden medaille

PHP expert
@siliecom: niemand vraagt je om mjn functie te verbeteren. Mocht je dit wel willen doen en dus met iets komen van 'dit werkt beter' wees dan ook zeker dat het WERKT. En jezelf dus niet een beetje belachelijk maakt door een spelfout er uit te halen ipv een logische fout.

Citaat:
hoezo eigelijk Tuinstoel kan het wel snappen maar de buitenlander zeker niet?


Met zo'n mentaliteit kom je echt NERGENS hoor. Zo is het heel gemakelijk, vanaf iemand je vizeert zeg jij dat het is omdat je buitenlander bent. Dus als je een waarschuwing krijgt, dan kan de crew een pm terug verwachten met 'racist, waarom de buitenlander pesten'.

1) Hoe kan ik weten dat jij een buitenlander bent? (het meeste wat ik van je zie is een avatar en gebroken nederlands. En dit laatste is bij meerdere native leden ook zo.)
2) Wat kan het mij nu schelen?
3) Waarom zou ik het niet zeggen als je een buitenlander bent? Dus natives mag ik erop wijzen dat ze het niet zouden snappen maar buitenlanders niet. Dan kom jij juist racistisch uit de hoek en niet ik.

Offline Ibrahim - 29/10/2005 16:30 (laatste wijziging 29/10/2005 16:32)
Avatar van Ibrahim PHP expert mij kan het niet schelen of ik een waarschuwing krijg of niet na drie keer waarschuwingen word ik gebanned (ooh me leven gaat voorbij, laat ik maar een boze mailtje sturen)

En over dat je zei: Hoe kan ik dat nou weten:

Zeg me niet dat je nog nooit mijn profiel hebt bekeken...

Maar ik snap het wel wat je bedoelde... Je kent Tuinstoel beter dan mij en ik dacht nemesiskoen heeft het geschreven, dan zal het wel goed zijn. Ik wilde er alleen op wijzen dat er een aantal fouten inzaten qua spelling.

En over dat ik gebroken nederlands praat. Dat slaat nergens op. Dit is een website. Hier ga je toch niet letten op hoe je dingen schrijft?? Of heb ik het mis en ben je altijd grammaticaal/spelling perfect overal waar je bent?

Maar dit is allemaal offtopic Het probleem is opgelost, dus het kan toch gewoon dicht?
Offline Gerard - 29/10/2005 16:34
Avatar van Gerard Ouwe rakker Omdat het hier altijd een serieuze aangelegenheid is en om de site zo leesbaar mogelijk te houden, vind ik dat er hier wel gekeken mag worden naar spelling en grammatica ja. Het is natuurlijk onzin om te zeggen dat je de taal mag verneuken omdat je toevallig op internet zit.

Offline Ibrahim - 29/10/2005 16:55
Avatar van Ibrahim PHP expert maar heb je mij msn taal zien typen dan? Maar goed daar heb je wel gelijk in

Mag deze topic dicht voordat ik ruzie met de hele site heb 
Offline nemesiskoen - 29/10/2005 16:59
Avatar van nemesiskoen Gouden medaille

PHP expert
Op drie vragen antwoorden is soms moeilijk precies. En ja ik heb een hekel aan verkeerd gebruik van woorden als 'deze' en 'dit' enzovoort.

Ja ik heb je profiel bekeken, neen ik wist niet dat je Ibrahim noemt en dat kan me eigenlijk ook niets schelen. Ik heb Proximus' profiel al X aantal keer bekeken en heb nog nooit gezien dat hij 'Gerard' noemt (dit zie ik dus nu voor de eerste keer).

Citaat:
mij kan het niet schelen of ik een waarschuwing krijg of niet na drie keer waarschuwingen word ik gebanned (ooh me leven gaat voorbij, laat ik maar een boze mailtje sturen)

En waar slaat dat op? Dat heeft er helemaal niets mee te maken.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.216s