begin process at 2012 05 27 19:04:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > LEVELPARSER

LEVELPARSER


 Information sur la source

Note :
Aucune note
Catégorie :Chaîne de caratère Classé sous :tree, arbre, levelparser, pigeret, parsing Niveau :Débutant Date de création :01/08/2010 Date de mise à jour :01/08/2010 11:25:59 Vu / téléchargé :1 618 / 46

Auteur : jonguignolo

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

 Description

Bonjour,
un petit code simple qui permet de parser un arbre représenté par une ligne : "['noeud 1']['noeud 2" ['fils noeud 2'] ]"
Ceci donnera le tableau suivant : array(2) {
  ["noeud 1"]=>
  array(0) {
  }
  ["noeud 2"]=>
  array(1) {
    ["fils noeud 2"]=>
    array(0) {
    }
  }
}

Invoquer le code :
perso dans un terminal : php main.php
ou    php tests.php et voir la sortie sur le term`.

Livrables :
LevelParser.php : contient notre classe principale
    -> dans ce fichier vous pouvez modifier les constantes suivantes :
           MARKER_START_NEWLEVEL, MARKER_END_NEWLEVEL
           représentant l'ouverture d'un niveau , par defaut "[", et sa fermeture par défaut "]".
main.php : exemple pratique d'utilisation de LevelParser affiché ci bas avec : CreateFoldersArborescence
tests.php : quelque test unitaires.

Attention :
- la limite du systeme est qu'il ne faut pas utiliser MARKER_START_NEWLEVEL, MARKER_END_NEWLEVEL dans un nom de noeud,
sinon soit sa pete si vous en insérant sans les refermer par exemple :  "[ 'mon noeud [' ]". ou ça interpretera mal la chose dans un cas comme celui-ci :
"[ '[mon noeud]']"



Source

  • //Example d'utilisation pratique.
  • //Representer une arborescence de dossier avec cette méthode.
  • //renvoie un tableau a 1 dim, avec sur chaque ligne le chemin d'un rep a créer
  • function CreateFoldersArborescence($treeSerialized)
  • {
  • $oTree = new LevelParser($treeSerialized);
  • $bOk = $oTree->Init($treeSerialized) && $oTree->Parse();
  • $arPaths = array();
  • if (!$bOk)
  • {
  • echo "Error: " . $oTree->GetLastError() . "\r\n";
  • }
  • else
  • {
  • CreatePathRec($oTree->GetResult(), $arPaths, "");
  • }
  • return $arPaths;
  • }
  • function CreatePathRec(&$refArTree, &$arLines, $strPrefix)
  • {
  • foreach ($refArTree as $key => $arlevelEntries)
  • {
  • $arLines[] = $strPrefix . '/' . $key ;
  • if (count($arlevelEntries) > 0)
  • CreatePathRec($arlevelEntries, $arLines, $arLines[count($arLines)-1] );
  • }
  • return ;
  • }
//Example d'utilisation pratique. 
//Representer une arborescence de dossier avec cette méthode.
//renvoie un tableau a 1 dim, avec sur chaque ligne le chemin d'un rep a créer
function CreateFoldersArborescence($treeSerialized)
{
	$oTree = new LevelParser($treeSerialized);
	$bOk = $oTree->Init($treeSerialized) && $oTree->Parse();
	$arPaths = array();
	
	if (!$bOk)
	{
		echo "Error: " . $oTree->GetLastError() . "\r\n";
	}
	else
	{
		CreatePathRec($oTree->GetResult(), $arPaths, "");
	}
	return $arPaths;		
}

function CreatePathRec(&$refArTree, &$arLines, $strPrefix)
{
	foreach ($refArTree as $key => $arlevelEntries)
	{
		$arLines[] = $strPrefix . '/' . $key ;
		if (count($arlevelEntries) > 0)
			CreatePathRec($arlevelEntries, $arLines, $arLines[count($arLines)-1] );
	}
	return ;
}

 Conclusion

En utilisant CreateFoldersArborescence avec la ligne d'exemple du début  "['noeud 1']['noeud 2" ['fils noeud 2'] ]",
on se retrouve avec ceci en sortie.

Array
(
    [0] => /noeud 1
    [1] => /noeud 2
    [2] => /noeud 2/fils noeud 2
)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

01 août 2010 11:26:22 :
ajout section "Attention" dans l'intro présentation source.

 Sources du même auteur

Source avec Zip CLASS CRYPTAGE/DECRYPTAGE TABLEAU/CHAINE DE CARACTÈRE
Source avec Zip CLASS POUR TRAITER LES FORMULAIRE(GESTION ERREURS/MOT_DE_PAS...
Source avec Zip Source avec une capture MENU PHP CLASS/PHP5
Source avec Zip GRAPHEUR BETA (UTILISATION DE LA LIB GD)
Source avec Zip Source avec une capture PAGE AVEC CADRILLAGE DE LA COULEUR VOULU/UTILISATION DE GD

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

 Sources en rapport avec celle ci

CRÉER UN PARSEUR LL par Morphinof
Source avec une capture CRÉATION D'UN TABLEAU AVEC CONTENU DYNAMIQUE par tesniced
Source avec Zip Source avec une capture LISTER DOSSIER AVEC UN ARBRE / TREE EN PHP / JAVASCRIPT par cyril6789
UNE ARBORESCENCE. par coucou747
Source avec Zip EVALUER UNE EXPRESSION MATHEMATIQUE, UTILISATION D'UN ARBRE ... par coucou747

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

arbre généalogique-collapse tree [ par rami3b ] bonjourexiste-t-il un équivalent libre de yfiles ajax -http://www.yworks.com/en/products_yfilesajax_about.htmlje veut afficher une arbre c arbre généalogique-collapse tree [ par rami3b ] bonjourexiste-t-il un équivalent libre de yfiles ajax -http://www.yworks.com/en/products_yfilesajax_about.htmlje veut afficher une arbre c Formulaire de création d'un arbre généalogique [ par EmmaBlack ] Bonjour tout le monde! Je cherche depuis ce matin un script pour créer un arbre généalogique. J'en ai trouvé plusieurs ici, mais chaque fois avec une tree ihm [ par lina22 ] Bonjour, J'ai un serveur qui contient plusieurs répertoire et sous répertoire Comment arbre n-aire [ par am1ra2 ] bonjour, je veux réaliser une recherche en php selon arbre n-aire,le principe est à partir d'une table on crée une arbre puis on va faire l'affichge e de l'arbre n-aire en C à php [ par am1ra2 ] bonjour j'ai trouvé ce code qui répond à mes besoins sur l'arbre n'aire mais il est en C si quelqu'un peut m'aider à le déveloper en php puisque j'ai Programmer un arbre de jeu pour un puissance 4 [ par bayer59 ] Bonjour, J'ai actuellement un projet de puissance 4 avec intelligence artificielle et interface graphique à réaliser en C. Le programme tourne en mod Algo "modified preorder tree traversal" [ par kohntark ] Salut, Une fois n'est pas coutume je VEUX un code tout fait !!! (<== [^^mad5] règlement !!) [^^yeuxenlair] ma masse capillaire commence à souffrir d tableau avec boucle for [ par jagogordonne ] Bonjour à tous, Je pose mon problème : j'ai une page saisie_abatage ou je récupère des données venant d'une table lot, ensuite je rentre la date d'a Arbre de possibilité [ par inwebo ] Bonjour à tous, Je suis à la recherche d'information pour modéliser un arbre de possibilités. Auriez vous de la documentation, articles, des mots cle


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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,827 sec (3)

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