begin process at 2012 05 27 20:26:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > STRINGTOKENIZER - IMPLÉMENTATION DE LA CLASSE JAVA EN PHP

STRINGTOKENIZER - IMPLÉMENTATION DE LA CLASSE JAVA EN PHP


 Information sur la source

Note :
Aucune note
Catégorie :Class et Objet ( POO ) Niveau :Débutant Date de création :21/04/2003 Date de mise à jour :21/04/2003 17:20:59 Vu :3 281

Auteur : naholyr

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Idéal pour écrire un parseur, permet de parcourir un texte "token par token".
Je rappelle qu'un "token" est une "unité de texte".

[Exemple]
$tok = new StringTokenizer("salut c'est moi toto !");
while($tok->hasNext()) {
  echo "[".$tok->next()."]";
}

affichera: [salut][c'est][moi][toto][][]

Source

  • class StringTokenizer
  • {
  • /* private */ var $tokens;
  • /* private */ var $string;
  • /* private */ var $separators = " \t\r\n~{}[]()-|_/\!:;.,?";
  • /* private */ var $hasNext;
  • /* public */ function StringTokenizer($string = "")
  • {
  • $this->setString($string);
  • }
  • /* public */ function setSeparators($new_separators)
  • {
  • $this->separators = $new_separators;
  • $this->setString($this->string);
  • }
  • /* public */ function getSeparators()
  • {
  • return $this->separators;
  • }
  • /* public */ function setString($string)
  • {
  • // on remplace tous les séparateurs par \0
  • // puis on explose selon \0
  • $separators = $this->separators;
  • for ($i=0; $i<strlen($separators); $string = str_replace($separators[$i++], "\0", $string));
  • $this->string = $string;
  • $this->tokens = explode("\0", $string);
  • $this->reset();
  • }
  • /* public */ function getString()
  • {
  • return $this->string;
  • }
  • /* public */ function reset()
  • {
  • reset($this->tokens);
  • $this->hasNext = sizeof($this->tokens)>0;
  • }
  • /* public */ function hasNext()
  • {
  • return $this->hasNext;
  • }
  • /* public */ function next()
  • {
  • $cur = current($this->tokens);
  • $this->hasNext = (FALSE!==next($this->tokens));
  • return $cur;
  • }
  • }
class StringTokenizer
{
  /* private */ var $tokens;
  /* private */ var $string;
  /* private */ var $separators = " \t\r\n~{}[]()-|_/\!:;.,?";
  /* private */ var $hasNext;

  /* public */ function StringTokenizer($string = "")
  {
    $this->setString($string);
  }

  /* public */ function setSeparators($new_separators)
  {
    $this->separators = $new_separators;
    $this->setString($this->string);
  }

  /* public */ function getSeparators()
  {
    return $this->separators;
  }

  /* public */ function setString($string)
  {
    // on remplace tous les séparateurs par \0
    // puis on explose selon \0
    $separators = $this->separators;
    for ($i=0; $i<strlen($separators); $string = str_replace($separators[$i++], "\0", $string));
    $this->string = $string;
    $this->tokens = explode("\0", $string);
    $this->reset();
  }

  /* public */ function getString()
  {
    return $this->string;
  }

  /* public */ function reset()
  {
    reset($this->tokens);
    $this->hasNext = sizeof($this->tokens)>0;
  }

  /* public */ function hasNext()
  {
    return $this->hasNext;
  }

  /* public */ function next()
  {
    $cur = current($this->tokens);
    $this->hasNext = (FALSE!==next($this->tokens));
    return $cur;
  }

}

 Conclusion

Une documentation au format HTML verra bientot le jour (aidé par AutoPhpDoc).


 Sources du même auteur

Source avec Zip MODULE DE GESTION D'ERREUR
Source avec Zip LECTURE DES FICHIERS DE CONFIGURATION .INI
Source avec Zip COURS COMPLET SUR LES EXPRESSIONS RÉGULIÈRES EN PHP
TRI DE TABLEAUX MULTI-DIMENSIONNELS
PHP TO JS - CONVERSION D'UNE VARIABLE EN PHP VERS JAVASCRIPT

 Sources de la même categorie

Source avec Zip GÉNÉRATION AUTOMATIQUE DE FICHIER .CLASS.PHP EN FONCTION D'U... par ig3
CLASSE D'OBJET DE CRYPTAGE ET DÉCRYPTAGE DE CHAINES DE CARAC... par 8Tnerolf8
Source avec Zip MY.DEVIANTART API par inwebo
CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter

Commentaires et avis

Commentaire de ronanry le 22/04/2003 09:34:12

ch'tite question....
tu ecris "!==" dans ta function next....alors je ne comprends pas la difference entre "!==" et "!=" ...???
si tu pouvais me donner un petit exemple....
merci

Commentaire de naholyr le 22/04/2003 12:07:53

l'opérateur d'égalité triple fait une comparaison typée. c'est-a-dire que: '0'==0 vaudra TRUE là où '0'===0 vaudra FALSE (car il ne s'agit pas du meme type).
X === Y est equivalent a (X==Y) && (gettype(X)==gettype(Y))
du coup:
X !== Y est equivalent a (X!=Y) || (gettype(X)!=gettype(Y))

c'est plus clair ?

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales