login  Naam:   Wachtwoord: 
Registreer je!
 Forum

tekens tellen

Offline remy - 23/09/2004 20:22 (laatste wijziging 23/09/2004 20:22)
Avatar van remyPHP ver gevorderde hoe kun je bepaalde tekens tellen uit een string?

ik had al zoiets, maar ik zou niet weten hoe dit moet.
  1. <?php
  2. function tekens($data) {
  3.  
  4. $tel = count(ereg("*", $data));
  5. return $tel;
  6.  
  7. }
  8.  
  9.  
  10.  
  11. echo tekens();
  12. ?>

wie kan me helpen:'(

10 antwoorden

Gesponsorde links
Offline cowbeast - 23/09/2004 20:33
Avatar van cowbeast Onbekend meschien zit er een fout in de variabel $data?
Offline remy - 23/09/2004 20:39
Avatar van remy PHP ver gevorderde in $data staat een gastenboek en die is opgesplitst met *tjes.
ik wou tellen hoeveel er van waren.

er zit verder geen fout in $data geloof ik
Offline Darrow - 23/09/2004 20:48
Avatar van Darrow Onbekend <?php
$aantaltekens=strlen("sitemasters");
echo $aantaltekens; //resultaat zal zijn 11
?>

staat bij overzicht ..
Offline Dennisvb - 23/09/2004 21:05
Avatar van Dennisvb MySQL ver gevorderde Dat vraagt hij niet, hij vraagt hoeveel *'tjes er zijn
Offline SickBoy - 23/09/2004 21:06
Avatar van SickBoy MySQL beginner niet de hele string tellen, maar het aantal * dat erin voorkomt.

je kan het misschien proberen met explode
Offline Stijn1 - 23/09/2004 21:38
Avatar van Stijn1 Gouden medaille

PHP ver gevorderde
je kan het ook zo doen:
  1. <?php
  2. $a = explode('*', $string);
  3. echo count($a);
  4. ?>

nu krijg je dus als je dit hebt:
test*hallo*nog iets*einde
4 als uitkomst, als je echt wilt hoeveel * er zijn moet je gewoon min 1 doen...
Offline twopeak - 24/09/2004 00:28
Avatar van twopeak Gouden medaille

PHP ver gevorderde
stijn dat vond ik een heel mooie oplossing.
Want ik vemoed dat hij dit sowiso gebeurt met de gastenboek-data; een array van maken!
Maar als het niet moet, vraag ik mij af of het een verantwoorde manier is (kwestie van geheugengebruik enzo)

anders kon je met strpos elke * zoeken (en ze tellen) en dan weet je hoeveel 'tussenberichten' er zijn en zo het aantal berichten controleren...
Offline Thomas - 24/09/2004 07:40 (laatste wijziging 24/09/2004 08:42)
Avatar van Thomas Moderator Er worden een aantal fouten gemaakt in remy zijn functie:

- eregi() retourneert de lengte van een match. Omdat je altijd maar 1 karakter bekijkt is dit 1. Ik weet niet wat count(1) oplevert...
- het eerste argument van eregi() bevat een reguliere expressie. Het symbool * heeft binnen reguliere expressies een speciale betekenis. Je moet hier een \ (backslash) voorzetten om dit teken van zijn speciale betekenis te ontdoen.
- tekens() wordt zonder parameter aangeroepen... dat kan natuurlijk nooit goed gaan

Als je altijd maar één karakter wilt controleren, zou je de te controleren string teken voor teken kunnen doorlopen.

Of je gebruikt deze:
http://www.php....-chars.php

  1. <?php
  2. $jestring = "*blaat*";
  3. $karakter_array = count_chars($jestring); // retourneert een array
  4. echo "aantal *: ".$karakter_array[ord("*")]; // levert "aantal *: 2"
  5. ?>
Offline Scott - 24/09/2004 12:49
Avatar van Scott Gouden medaille

PHP ver gevorderde
Dit kan allemaal veel makkelijker: http://nl.php.net/substr_count/
Offline remy - 24/09/2004 17:16
Avatar van remy PHP ver gevorderde ik heb die van Fangorn aangepast tot :

  1. <?php
  2. $karakter_array = count_chars($data);
  3. echo "aantal *: ".$karakter_array[ord("*")];
  4. ?>

aangezien ik niet wist hoe je die van stijn -1 moest doen..
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.245s