Soyez le premier à donner votre avis sur cette source.
Vue 8 948 fois - Téléchargée 951 fois
Cette classe comporte 4 fonctions : replace ( t, s, r ) : remplace un substring par un autre dans un string // t = string source // s = substring a remplacer // r = substring remplacant nl2br ( t ) : corrige le bug du dauble saut de ligne lors de l'importation de texte dynamique // t = string source parseHTML ( t ) : force le code html ( ex: remplace "<" par "<" ) // t = string source parseBBCode ( t ) : parse le format BBCode ( modifié ) // t = string source // attention ce ne sont pas les balises BBCode normale ! EXEMPLE : import bkcore.strlibs.str; myXML = new XML (); myXML.ignoreWhite = true; System.useCodepage = true; myXML.load ("test.xml"); myXML.onLoad = function (flag) { if (flag) { accueil = myXML.childNodes[0]; tmpAccueilContent = accueil.firstChild.toString(); tmpAccueilContent = str.nl2br(tmpAccueilContent); // résout le bug des doubles sauts de ligne tmpAccueilContent = str.parseHTML(tmpAccueilContent); // force le code html ( remplace < par < par exemple ) tmpAccueilContent = str.parseBBCode(tmpAccueilContent); // parse le BBCode ( pas exactement un BBCode ) ^^ _root.accueilContent.htmlText = tmpAccueilContent; } }
je suis nouveau en action script, je ne vois pas tjs ou vs voulez en venir.
Votre solution marche uniquement lorsque l'on fait un "toString()", donc on ne peut pas mettre plusieurs noeuds ds vos xml.... Non? J'ai essayé, je n'y parviens pas.
Merci pour votre réponse.
"Si replace(chaîne, "\n", ""); et nl2br (chaîne); sont équivalente pourquoi de ne pas écrire :
Function nl2br (chaîne) {
replace(chaîne, "\n", "");
}"
Comme je l'ai dit dans le message plus au cela viens du fait que j'ai écrit cette fonction avant la fonction replace() et que j'ai simplement oublier de mettre a jour ;)
Si replace(chaîne, "\n", ""); et nl2br (chaîne); sont équivalente pourquoi de ne pas écrire :
Function nl2br (chaîne) {
replace(chaîne, "\n", "");
}
je parlais de la doc au format Windows php_manual.chm
mais il y a le lien si dessous :
http://fr2.php.net/manual/fr/function.preg-replace.php
voir "Exemple 1. Convertit du HTML en texte"
il y a ce que l'on cherche ($search) et ce que l'on remplace $replace.
Prenons un peu de recule avec les fonctions parseHTML et parseBBCode et ne regardons pas ce qu'elles font mais plutôt leur caractère identique comme comparer 2 dessins dans le jeux des 7 erreurs, les 2 dessins sont différents par de petits points mais fondamentalement identique.
Où je veux en venir !?
Et bien garder ce qui est identique car c'est la base, ici la class, et extraire du code les différences.
Les différences sont toutes les séries de remplacement.
Exemple, stocker les différences (remplacement) dans une base de donnée ou dans un format xml <tag search="[b]" replace=""/> charger les différences et les envoyer dans un replace.
S'il y a des nouveaux éléments de remplacement alors je touche la base et non pas la class.
Enfin c'est ma vision des choses.
et pour te répondre :
"Est ce que replace(chaîne, "\n", ""); est égale à nl2br (chaîne);"
oui, c'est simplement que j'avais créé cette fonction avant la fonction replace ^^et que j'ai ommit de la modifier.
Sinon je trouve que les débutant préfèreront logiquement utiliser nl2br (chaîne); plutot que replace(chaîne, "\n", ""); car ils ne sauront pas forcément que le bug du double saut de ligne d'import vien de la ;)
"parseHTML et parseBBCode sont 2 fonctions distinctes mais en réalité elles font exactement la même chose"
Ce sont simplement des replace préécrit et directement utilisable pour des cas précis et cela évite d retaper tous ces replace a chaque fois. Personnelement j'utilise le parsage de BBCode pour les posts mais j'utilise parseHTML dans d'autre cas ;) j'ai donc besoin de 2 fonction distinctes
"regarde la documentation PHP de la fonction preg_replace à « Exemple 5. Conversion HTML en texte »"
De quelle doc parle tu ? php.net ?
Je suis un très grand fainéant qui n'aime pas trop écrire.
La question est :
Est ce que replace(chaîne, "\n", ""); est égale à nl2br (chaîne);
C'est évident qu'au premier abord le système nl2br est plus court à l'utilisation mais dans un second temps le code source de nl2br est redondant avec celui de replace. J'ai, pour ma part, toujours une vision de maintenance du code et aussi la création de code le plus générique possible.
Autre remarque, parseHTML et parseBBCode sont 2 fonctions distinctes mais en réalité elles font exactement la même chose. Pour mieux comprendre, regarde la documentation PHP de la fonction preg_replace à « Exemple 5. Conversion HTML en texte » je pense que tu comprendras plus aisément le terme que j'appelle redondant.
Je peux, si tu le désire, être clair avec un exemple.
A Bientôt
Franck
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.