Accueil > Forum > > > > Fermer les balises html en fin de requete
Fermer les balises html en fin de requete
jeudi 6 juillet 2006 à 18:54:05 |
Fermer les balises html en fin de requete

badben
|
Bonjour, Je cherche une fonction qui permet de fermer les balises HTML d'une variable texte qui comprend de code HTML. Au cas ou l'utilisateur ne ferme pas correctement les balises. Par exemple, ici, là, dans ce forum je vais essayer de tapper un message comprenant des balises HTML : bonjour je suis un message, et je suis <b>gras. Comme vous le voyez la balise <b> est ouvete mais pas fermée. Par contre le texte suivant n'est pas en gras car : ou les balises HTML ne sont pas activées sur ce forum ou bien une parade a été installée.
|
|
jeudi 6 juillet 2006 à 18:57:33 |
Re : Fermer les balises html en fin de requete

badben
|
Voilà j'ai fait le test sur le forum, et les balises HTML ne sont pas autorisées, pas de pôt pour moi :) mon exemple foire.
Mais bon en gros je désire une fonction qui permette de résoudre ça :
bonjour je suis un message, et je suis <b>gras.
-> bonjour je suis un message, et je suis <b>gras.</b>
Et donc ajouter une balise fermante en fin d'affichage.
Je peux toujours mettre echo '</b></script></i></u></strong></ul></li>...'; après l'affichage de ma variable mais bon.
|
|
jeudi 6 juillet 2006 à 21:48:24 |
Re : Fermer les balises html en fin de requete

nightlord666
|
Tu crée une pile FILO, tu pushe les balises à chaque fois que tu en trouve une, et tu pop tout àla fin, c'est le plus simple à faire je pense.
//Libère ma mémoire que j'ai utilisé this->GetCurrentConversation()->FreeAllocatedMemory(REASON_UNUSED);
|
|
jeudi 6 juillet 2006 à 22:47:59 |
Re : Fermer les balises html en fin de requete

friedman
|
Sinon tu utilises le système D, tu enregistre ton texte dans une variable (sa ne changera pas de d'habitude) tu verifie si la balise gras existe sinon tu la ferme en fin de texte. J'espere pour toi qu'une fonction existe, car je me vois mal utilisez ma methode
|
|
vendredi 7 juillet 2006 à 06:16:05 |
Re : Fermer les balises html en fin de requete

malalam
|
hello,
il n'existe pas de fonction toute prête pour ça. La solution de NightLord est la meilleure, mais elle est plus complexe qu'il n'y parait...(il faut faire attention dans ce cas aux balises qui, elles, sont fermées...ne pas les mettre dans la pile, et ne pas créer de mauvaise imbrication).
|
|
vendredi 7 juillet 2006 à 11:22:21 |
Re : Fermer les balises html en fin de requete

nightlord666
|
En fait, à chaque balise trouvée, on la pushe dans la pile, sauf si c'est une balise vide (img / br / hr) : dans ce cas là on vérifie si elle est bien fermée. Quand on trouve une balise de fermeture, on regarde si il s'agit du même tag que dans la pile, si c'est le même on pop, si c'est un autre on lance une erreur. A la fin, si il reste des balises dans la pile, on pop.
Je pense que ça devrait marcher comme ça, je vais essayer et je posterais peut-être la source içi.
//Libère ma mémoire que j'ai utilisé this->GetCurrentConversation()->FreeAllocatedMemory(REASON_UNUSED);
|
|
vendredi 7 juillet 2006 à 11:40:00 |
Re : Fermer les balises html en fin de requete
|
vendredi 7 juillet 2006 à 12:27:54 |
Re : Fermer les balises html en fin de requete

nightlord666
|
Bon après une heure de programmation, j'en arrive à ça :
<?php
//Une classe utilitaire pour faire une pile FILO en PHP class FILO { private $stack;
public function FILO() { $this->stack = array(); }
public function push($elem) { array_unshift($this->stack, $elem); }
public function getFirst() { return $this->stack[0]; }
public function pop() { $value = $this->stack[0]; array_shift($this->stack); return $value; }
public function isEmpty() { return empty($this->stack); } }
function fermer($text) { $temp = $text; $transformed = $temp; $stack = new FILO();
//Tant qu'on trouve des tags, on boucle while(true) { if(strlen($temp) == 0) break; $pos1 = strpos($temp, '<'); if($pos1 == -1) { break; }
$pos2 = strpos($temp, '>'); if($pos2 == -1) { throw new Exception('Un caractère < a été trouvé sans caractère > correspondant.'); break; }
//On récupère le tag $tag = substr($temp, $pos1 + 1, $pos2 - $pos1 - 1); //echo $tag.'<br/>';
if($tag[0] != '/') { //Si c'est une balise sans fermeture, on ne la pushe pas if($tag[strlen($tag) - 1] != '/') $stack->push($tag); } else { //On vérifie que c'est le bon tag de fermeture $tag = substr($tag, 1, strlen($tag) - 1); if($stack->getFirst() != $tag) { throw new Exception('Les balises d\'ouverture / fermeture ne correspondent pas'); }
//On pop $stack->pop(); }
//On tronque la chaine après le tag $temp = substr($temp, $pos2 + 1, strlen($temp) - 1 - $pos2); //echo $temp.'<br/>'; }
//Tant que ce n'est pas vide, on pop while(!$stack->isEmpty()) $transformed .= '</'.$stack->pop().'>';
return $transformed; }
$text = fermer($_GET['texte']); echo htmlentities($text);
?>
Dis moi si ça te convient !
//Libère ma mémoire que j'ai utilisé this->GetCurrentConversation()->FreeAllocatedMemory(REASON_UNUSED);
|
|
mardi 19 janvier 2010 à 20:25:42 |
Re : Fermer les balises html en fin de requete

Dahevos
|
Désolé de upper le sujet, mais ce genre de fonction m'intéresse ENORMEMENT ( j'en ai clairement besoin pour un projet que je dois rendre très bientôt ) et donc j'aimerai savoir si une âme charitable pourrait corriger le script trouvé plus haut, car il ne fonctionne pas :(
Si j'ouvre une balise avec <em> par exemple, et que je la ferme pas, voila ce qu'il me donne :
<em> j'ai oublié de fermer </>></></?></m?></rm?> etc..... ca continue comme ca en boucle donc ca bug :(
je voulais savoir aussi si je fais un </strong> si ce ignorer celui-ci ( si par exemple on avait pas ouvert de <strong> avant !
Merci de me répondre !
|
|
Cette discussion est classée dans : fin, requete, html, fermer, balises
Répondre à ce message
Sujets en rapport avec ce message
Balises HTML et affichage ... [ par Tomcube ]
Existe-t-il des scripts qui permettent d'ajouter une mise en forme aux messages de la même manière que le permet le HTML, mais avec une syntaxe plus s
Supprimer les balises html d'une chaine de caractère [ par SAaD44 ]
Salut !Voila, je cherche le moyen de supprimer toutes les balises html (de début et de fin) d'une chaine de caractère.Merci d'avance SAâD
Filtrage de balises HTML... [ par SDK_akira ]
Bonjour,Je travaille actuelement sur un site web ou les membres ont la possibilité de laisser des messages pour faire vivre le site (c'est un jeu) or
comment empêcher les balises html? [ par jnbrunet ]
Comment éviter qu'une personne utilise des balises html dans un forum ou autre type de faille?Jn
fermer popup automatiquement [ par kakol ]
Bonjour,J'ai juste un petit soucis.J'ouvre une popup avec contenant un formulaire et un bouton Valider.Quand je clique sur valider je veux que ma requ
supprimer le contenu des balises script [ par caviar ]
Saluté ...j'ai un petit casse tête à résoudre ...j'aimerai filtrer les balises scripts dans un code html et les supprimerimaginon que j'ai en html ava
textarea et balises html [ par David_monchy ]
Salut à tous, contrairement aux autres questions du forum, qui demandent en général comment éviter que le code html soit traduit, moi je voudrais par
code html [ par ldevun ]
Bonjour,j'ai créé un forum et donc lorsqu'une personne rentre un message celui ressort avec des balises HTML :Entrer ici les nou
éliminer les balises html [ par hadjiphp ]
Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : j'ai une page web et je
Supprimer les balises html [ par ImmortalPC ]
Salut,J'aimerai savoir comment faire pour supprimer tout les balises éventuelle et ne garder que le texte tout cela dans une varriable ou plusieurs.J'
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|