Partage
  • Partager sur Facebook
  • Partager sur Twitter

bbcode, problème avec la balise <table></table>

Sujet résolu
    2 juin 2009 à 18:28:44

    bonjour,
    j'ai suivit ce tuto pour le bbcode.
    j'ai donc fait une touche pour crée un tableau avec table, th, tr, td.
    le seul problèmme est que dès que je rajoute une liogne th, td nimporte, une ligne vide se crée au dessus de la balise table et donc au dessus du tableau.Ce qui fait que pour un tableau de 10 ligne, j'ai 10 lignes blanches au dessus de mon tableau.

    ca le fait pas trop.

    Voici mes codes:
    field = field.replace(/&lt;table&gt;([\s\S]*?)&lt;\/table&gt;/g, '<table>$1</table>');
    field = field.replace(/&lt;tr&gt;([\s\S]*?)&lt;\/tr&gt;/g, '<tr>$1</tr>');
    field = field.replace(/&lt;th&gt;([\s\S]*?)&lt;\/th&gt;/g, '<th>$1</th>');
    field = field.replace(/&lt;td&gt;([\s\S]*?)&lt;\/td&gt;/g, '<td>$1</td>');
    


    et:
    <input type="image" src="images/bbcode_info/table.png" alt="table" title="table" value="table" onclick="insertTag('<table>','</table>','textarea');return false;" />
    <input type="image" src="images/bbcode_info/tr.png" alt="tr" title="tr" value="tr" onclick="insertTag('<tr>','</tr>','textarea');return false;" />
    <input type="image" src="images/bbcode_info/th.png" alt="th" title="th" value="th" onclick="insertTag('<th>','</th>','textarea');return false;" />
    <input type="image" src="images/bbcode_info/td.png" alt="td" title="td" value="td" onclick="insertTag('<td>','</td>','textarea');return false;" />
    


    Pouvez vous m'aider ?
    merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      3 juin 2009 à 18:42:32

      Bonjour,
      personne ne peut m'aider, quoi faire? quoi changer? un peu d'aide ?
      merci d'avance
      • Partager sur Facebook
      • Partager sur Twitter
        4 juin 2009 à 13:09:01

        Bonjour,
        As-tu un exemple à nous montrer ou une page qu'on puisse tester?

        Car là il est impossible de reproduire ou de comprendre ton problème avec juste ce que tu nous donnes...
        • Partager sur Facebook
        • Partager sur Twitter
          4 juin 2009 à 18:29:04

          bonjour,
          ok voila un petit shéma de la situation:
          Image utilisateur

          Sinon, j'utilise le système de news.
          j'ai donc mis comme code:
          <table>
          <tr>
          <th>........</th>
          <th>.........</th>
          </tr>
          <tr>
          <td>.........<td/>
          <td>........<td/>
          </tr>
          </table>
          
          par exemple ici j'ai deux ligne donc deux ligne se crée au dessus du tableau.Cela vient de la balise table, j'en suis presque sur.

          pouvez vous m'aider?
          • Partager sur Facebook
          • Partager sur Twitter
            4 juin 2009 à 20:00:59

            Le problème c'est surtout pour reproduire ton cas. Car quand on fait ceci en HTML on obtient bien un tableau sans ligne au-dessus donc le problème doit venir de ton code javascript ou de son utilisation (par exemple c'est quoi ta fonction insertTag et où est fait la prévisualisation).

            Comme il y a plusieurs code dans le tutoriel indiqué, je ne sais pas lequel t'utilises (et je ne sais pas quelles modif tu as ajoutées) (désolée si je suis un peu fainéant...)

            En fait je soupçonne un problème de TBODY mais je ne peux pas te dire comment le corriger car je n'ai pas assez d'élément concernant ton code pour l'instant. Si j'avais un code pour tester je pourrai le dire tout de suite.
            • Partager sur Facebook
            • Partager sur Twitter
              4 juin 2009 à 20:10:51

              ok,
              voila le code:
              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
              <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
                <head>
                  <title></title>
              	<meta http-equiv="Content-Type" content="text/html;
              	      charset=iso-8859-1" />
              	<link rel="stylesheet" media="screen" type="text/css"
              	      title="" href="style.css" />
              <script type="text/javascript"> 
              <!--
              function insertTag(startTag, endTag, textareaId, tagType) {
              	var field = document.getElementById(textareaId);
              	field.focus();
              	
              	if (window.ActiveXObject) {
              		var textRange = document.selection.createRange();            
              		var currentSelection = textRange.text;
              	} else {
              		var startSelection   = field.value.substring(0, field.selectionStart);
              		var currentSelection = field.value.substring(field.selectionStart, field.selectionEnd);
              		var endSelection     = field.value.substring(field.selectionEnd);
              	}
              	
              	if (tagType) {
              		switch (tagType) {
              			case "lien":
              					endTag = "</lien>";
              					if (currentSelection) {
              							if (currentSelection.indexOf("http://") == 0 || currentSelection.indexOf("https://") == 0 || currentSelection.indexOf("ftp://") == 0 || currentSelection.indexOf("www.") == 0) {
              									var label = prompt("Quel est le libellé du lien ?") || "";
              									startTag = "<lien url=\"" + currentSelection + "\">";
              									currentSelection = label;
              							} else {
              									var URL = prompt("Quelle est l'url ?");
              									startTag = "<lien url=\"" + URL + "\">";
              							}
              					} else {
              							var URL = prompt("Quelle est l'url ?") || "";
              							var label = prompt("Quel est le libellé du lien ?") || "";
              							startTag = "<lien url=\"" + URL + "\">";
              							currentSelection = label;                     
              					}
              			break;
              			case "citation":
              					endTag = "</citation>";
              					if (currentSelection) {
              							if (currentSelection.length > 30) {
              									var auteur = prompt("Quel est l'auteur de la citation ?") || "";
              									startTag = "<citation nom=\"" + auteur + "\">";
              							} else {
              									var citation = prompt("Quelle est la citation ?") || "";
              									startTag = "<citation nom=\"" + currentSelection + "\">";
              									currentSelection = citation;    
              							}
              					} else {
              							var auteur = prompt("Quel est l'auteur de la citation ?") || "";
              							var citation = prompt("Quelle est la citation ?") || "";
              							startTag = "<citation nom=\"" + auteur + "\">";
              							currentSelection = citation;    
              					}
              			break;	
              		}
              	}
              	
              	if (window.ActiveXObject) {
              		textRange.text = startTag + currentSelection + endTag;
              		textRange.moveStart('character', -endTag.length-currentSelection.length);
              		textRange.moveEnd('character', -endTag.length);
              		textRange.select();  
              	} else { // Ce n'est pas IE
              		field.value = startSelection + startTag + currentSelection + endTag + endSelection;
              		field.focus();
              		field.setSelectionRange(startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length);
              	}      
              }
               
              function preview(textareaId, previewDiv) {
              	var field = textareaId.value;
              	if (document.getElementById('previsualisation').checked && field) {
              		
              		
              		var smiliesName = new Array(':yeyh', ':lol', ':content', ':snif',':colère',':att',':info',':erreur',':question');
              		var smiliesUrl  = new Array('yehkgouv.png', 'lolkgouv.png', 'contentkgouv.png', 'snifkgouv.png','colèrekgouv.png','attention.png','info.png','erreur.png','comment.png');
              		var smiliesPath = "images/smiley/";
              	
              
              		field = field.replace(/&/g, '&amp;');
              		field = field.replace(/</g, '&lt;').replace(/>/g, '&gt;');
              		field = field.replace(/\n/g, '<br />').replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
              		
              		field = field.replace(/&lt;gras&gt;([\s\S]*?)&lt;\/gras&gt;/g, '<strong>$1</strong>');
              		field = field.replace(/&lt;italique&gt;([\s\S]*?)&lt;\/italique&gt;/g, '<em>$1</em>');
              		field = field.replace(/&lt;souligne&gt;([\s\S]*?)&lt;\/souligne&gt;/g, '<ins>$1</ins>');
              		field = field.replace(/&lt;barre&gt;([\s\S]*?)&lt;\/barre&gt;/g, '<del>$1</del>');
              		field = field.replace(/&lt;h2&gt;([\s\S]*?)&lt;\/h2&gt;/g, '<h2>$1</h2>');
              		field = field.replace(/&lt;h4&gt;([\s\S]*?)&lt;\/h4&gt;/g, '<h4>$1</h4>');
              		field = field.replace(/&lt;h5&gt;([\s\S]*?)&lt;\/h5&gt;/g, '<h5>$1</h5>');
              		field = field.replace(/&lt;droite&gt;([\s\S]*?)&lt;\/droite&gt;/g, '<div style="float:right;">$1</div>');
              		field = field.replace(/&lt;gauche&gt;([\s\S]*?)&lt;\/gauche&gt;/g, '<div style="float:left;">$1</div>');
              		field = field.replace(/&lt;table&gt;([\s\S]*?)&lt;\/table&gt;/g, '<table>$1</table>');
              		field = field.replace(/&lt;tr&gt;([\s\S]*?)&lt;\/tr&gt;/g, '<tr>$1</tr>');
              		field = field.replace(/&lt;th&gt;([\s\S]*?)&lt;\/th&gt;/g, '<th>$1</th>');
              		field = field.replace(/&lt;td&gt;([\s\S]*?)&lt;\/td&gt;/g, '<td>$1</td>');
              		field = field.replace(/&lt;rouge&gt;([\s\S]*?)&lt;\/rouge&gt;/g, '<span style="color:red;">$1</span>');
              		field = field.replace(/&lt;orange&gt;([\s\S]*?)&lt;\/orange&gt;/g, '<span style="color:#CC9900;">$1</span>');
              		field = field.replace(/&lt;bleu&gt;([\s\S]*?)&lt;\/bleu&gt;/g, '<span style="color:#318AAC;">$1</span>');
              		field = field.replace(/&lt;vert&gt;([\s\S]*?)&lt;\/vert&gt;/g, '<span style="color:#009966;">$1</span>')
              		field = field.replace(/&lt;lien&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1">$1</a>');
              		field = field.replace(/&lt;lien url="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1" title="$2">$2</a>');
              		field = field.replace(/&lt;image&gt;([\s\S]*?)&lt;\/image&gt;/g, '<img src="$1" alt="Image" />');
              		field = field.replace(/&lt;citation nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>');
              		field = field.replace(/&lt;citation lien=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>');
              		field = field.replace(/&lt;citation nom=\"(.*?)\" lien=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$2">Citation : $1</a></span><div class="citation2">$3</div>');
              		field = field.replace(/&lt;citation lien=\"(.*?)\" nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$1">Citation : $2</a></span><div class="citation2">$3</div>');
              		field = field.replace(/&lt;citation&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation">Citation</span><div class="citation2">$1</div>');
              		field = field.replace(/&lt;taille valeur=\"(.*?)\"&gt;([\s\S]*?)&lt;\/taille&gt;/g, '<span class="$1">$2</span>');
              		
              		for (var i=0, c=smiliesName.length; i<c; i++) {
              			field = field.replace(new RegExp(" " + smiliesName[i] + " ", "g"), "&nbsp;<img src=\"" + smiliesPath + smiliesUrl[i] + "\" alt=\"" + smiliesUrl[i] + "\" />&nbsp;");
              		}
              		
              		document.getElementById(previewDiv).innerHTML = field;
              	}
              }
               
              function getXMLHttpRequest() {
              	var xhr = null;
              	
              	if (window.XMLHttpRequest || window.ActiveXObject) {
              		if (window.ActiveXObject) {
              			try {
              				xhr = new ActiveXObject("Msxml2.XMLHTTP");
              			} catch(e) {
              				xhr = new ActiveXObject("Microsoft.XMLHTTP");
              			}
              		} else {
              			xhr = new XMLHttpRequest();
              		}
              	} else {
              		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
              		return null;
              	}
              	
              	return xhr;
              }
               
               
              function view(textareaId, viewDiv){
              	var content = encodeURIComponent(document.getElementById(textareaId).value);
              	var xhr = getXMLHttpRequest();
              	
              	if (xhr && xhr.readyState != 0) {
              		xhr.abort();
              		delete xhr;
              	}
              	
              	xhr.onreadystatechange = function() {
              		if (xhr.readyState == 4 && xhr.status == 200){
              			document.getElementById(viewDiv).innerHTML = xhr.responseText;
              		} else if (xhr.readyState == 3){
              			document.getElementById(viewDiv).innerHTML = "<div style=\"text-align: center;\">Chargement en cours...</div>";
              		}
              	}
              	
              	xhr.open("POST", "view.php", true);
              	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
              	xhr.send("string=" + content);
              }
               
              //-->
              </script>
              </head>
              <body>
              <div id="main">
               
              	<form action="liste_tuto.php" method="post">
              		<div>
              		<h3><a href="liste_tuto.php">Retour à la liste des news</a></h3>
              			<p>
              				<input type="image" src="images/bbcode_info/gras.png" alt="gras" title="gras" value="G" onclick="insertTag('<gras>','</gras>','textarea');return false;" />
              				<input type="image" src="images/bbcode_info/italic.png" alt="italique" title="italique" value="I" onclick="insertTag('<italique>','</italique>','textarea');return false;" />
              				<input type="image" src="images/bbcode_info/souligner.png" alt="souligner" title="souligner" value="S" onclick="insertTag('<souligne>','</souligne>','textarea');return false;" />
              				<input type="image" src="images/bbcode_info/barre.png" alt="barrer" title="barrer" value="Barre" onclick="insertTag('<barre>','</barre>','textarea');return false;" />
              				-----
              				<input type="image" src="images/bbcode_info/h2.png"  alt="titre 1" title="titre 1" value="h2" onclick="insertTag('<h2>','</h2>','textarea');return false;" />
              				<input type="image" src="images/bbcode_info/h4.png" alt="titre2" title="titre 2" value="h4" onclick="insertTag('<h4>','</h4>','textarea');return false;" />
              				<input type="image" src="images/bbcode_info/h5.png" alt="titre 3" title="titre 3" value="h5" onclick="insertTag('<h5>','</h5>','textarea');return false;" />
              				----
              				<input type="image" src="images/bbcode_info/droite.png" alt="alignement à droite" title="alignement à droite" value="droite" onclick="insertTag('<droite>','</droite>','textarea');return false;" />
              				<input type="image" src="images/bbcode_info/gauche.png" alt="alignement à gauche" title="alignement à gauche" value="gauche" onclick="insertTag('<gauche>','</gauche>','textarea');return false;" />
              				----
              				<input type="image" src="images/bbcode_info/table.png" alt="table" title="table" value="table" onclick="insertTag('<table>','</table>','textarea');return false;" />
              				<input type="image" src="images/bbcode_info/tr.png" alt="tr" title="tr" value="tr" onclick="insertTag('<tr>','</tr>','textarea');return false;" />
              			    <input type="image" src="images/bbcode_info/th.png" alt="th" title="th" value="th" onclick="insertTag('<th>','</th>','textarea');return false;" />
              				<input type="image" src="images/bbcode_info/td.png" alt="td" title="td" value="td" onclick="inse
              


              Voila j'epere que vous pouvez m'aider .
              merci d'avance.
              • Partager sur Facebook
              • Partager sur Twitter
                4 juin 2009 à 21:55:59

                En fait ce n'était pas le problème que je pensais.
                Le problème vient du fait que tu fait des sauts de lignes entre tes balises (et donc ta fonction ajoute des <br/> dans le tableau)

                Pour remédier à ce problème modifie ta fonction preview pour enlever ces sauts de lignes entre tes balises, par exemple comme ceci (l'emplacement de la ligne par rapport aux autres est important sinon il faut changer le motif de recherche en conséquence):

                ...
                	field = field.replace(/&/g, '&amp;');
                	field = field.replace(/(tr|td|th|table)>[\n\r \t]+</g, '$1><'); // ligne à ajouter pour supprimer les sauts de lignes dans les tableaux entre les colonnes/lignes
                	field = field.replace(/</g, '&lt;').replace(/>/g, '&gt;');
                ...
                


                EDIT: enfait après quelques reflexions, il reste un petit bug: ce n'est pas possible de faire plusieurs sauts de lignes après le tableau si tu utilises directement une balise
                exemple:
                <table>
                </table>
                
                
                 <souligne>toto</souligne>
                toto reste collé au tableau.

                Re-EDIT:
                en fait il suffit d'utiliser cette ligne et ça doit marcher pour tous les cas:
                field = field.replace(/(tr|td|th|table)>[\n\r \t]*(<\/table|<)/g, '$1>$2'); // ligne à ajouter pour supprimer les sauts de lignes dans les tableaux entre les colonnes/lignes
                



                Pour expliquer un peu mieux cette expression (qui ne doit pas être très claire):
                tr|td|th|table)> correspond à la balise recherchée (remarque il n'y a pas le début de la balise (le <))
                [\n\r \t]* correspond à tout ce qui peut s'insérer entre les balises et qu'il faut enlever (\n et \r sont des sauts de lignes, \t est une tabulation et il y a un espace). Le * permet d'en rechercher 0 ou plusieur parmi cette liste
                (<\/table|<) correspond à au début de la balise suivante (ou la fin du tableau)

                si je n'ai pas pris le début de la balise (le <) c'est pour permettre à la recherche du pattern suivant de faire la même chose (sinon il faudrait refaire cette recherche une fois de plus après un premier remplacement) et c'est aussi pour cela que je recherche </table en entier à la fin pour éviter qu'il continue derrière cette balise.



                J'espère que mes explications sont claires et que ma proposition te convient. Si c'est le cas n'oublie pas de mettre le sujet en résolu.
                • Partager sur Facebook
                • Partager sur Twitter
                  5 juin 2009 à 19:01:05

                  bonjour,
                  merci pour ces expliquations.Mais j'ai pas tout compris.
                  je dois placer cette ligne:
                  field = field.replace(/(tr|td|th|table)>[\n\r \t]*(<\/table|<)/g, '$1>$2');
                  


                  avec les autres?:
                  field = field.replace(/&lt;table&gt;([\s\S]*?)&lt;\/table&gt;/g, '<table>$1</table>');
                  field = field.replace(/&lt;tr&gt;([\s\S]*?)&lt;\/tr&gt;/g, '<tr>$1</tr>');
                  field = field.replace(/&lt;th&gt;([\s\S]*?)&lt;\/th&gt;/g, '<th>$1</th>');
                  field = field.replace(/&lt;td&gt;([\s\S]*?)&lt;\/td&gt;/g, '<td>$1</td>');
                  field = field.replace(/(tr|td|th|table)>[\n\r \t]*(<\/table|<)/g, '$1>$2');
                  


                  Merci d'avance.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 juin 2009 à 21:03:14

                    oui et non...
                    il faut la placer avant celle-ci:
                    field = field.replace(/</g, '&lt;').replace(/>/g, '&gt;');
                    


                    sinon il faut remplacer les < et les > de l'expression par des &lt; et &gt;, ainsi que le \n par <br /> (pour ce dernier c'est plus délicas car ce n'est plus UN symbole mais un mot (ensemble de caractères) donc il faut aussi changer ce qu'il y a autour pour faire la recherche

                    Si tu veux la placer avec les autres tu peux mettre ceci:
                    field = field.replace(/&lt;table&gt;([\s\S]*?)&lt;\/table&gt;/g, '<table>$1</table>');
                    field = field.replace(/&lt;tr&gt;([\s\S]*?)&lt;\/tr&gt;/g, '<tr>$1</tr>');
                    field = field.replace(/&lt;th&gt;([\s\S]*?)&lt;\/th&gt;/g, '<th>$1</th>');
                    field = field.replace(/&lt;td&gt;([\s\S]*?)&lt;\/td&gt;/g, '<td>$1</td>');
                    field = field.replace(/(tr|td|th|table)>(?:<br \/>|\r| |&nbsp;)*(<\/table|<)/g, '$1>$2');
                    

                    Ici vu qu'elle est située après les autres modifications les &lt; et &gt; qui nous concernent ont été à nouveau retransformés en < et >

                    J'ai remplacé le [\n\r \t]* par (?:<br \/>|\r| |&nbsp;)* car cette fois ce sont des mots.
                    Le ?: sert à dire que cette parenthèse est non capturante (pour éviter de changer le $2 à la fin)
                    • Partager sur Facebook
                    • Partager sur Twitter
                      6 juin 2009 à 12:24:17

                      Bonjour,
                      voila il y a une 2eme page qui sert a voir le resultat une fois la page enregisté.
                      <?php
                      // On enlève les éventuels antislash
                          $contenu = stripslashes($donnees['contenu']);
                      
                      // On applique le Zcode
                      $zcode = array(  
                      		'`<italique>(.+)</italique>`isU',  
                      		'`<gras>(.+)</gras>`isU',
                      		'`<souligne>(.+)</souligne>`isU',
                      		'`<barre>(.+)</barre>`isU',
                      		'`<h2>(.+)</h2>`isU',
                      		'`<h4>(.+)</h4>`isU',
                      		'`<h5>(.+)</h5>`isU',
                      		'`<droite>(.+)</droite>`isU',
                      		'`<gauche>(.+)</gauche>`isU',
                      		'`<table>(.+)</table>`isU',
                      		'`<tr>(.+)</tr>`isU',
                      		'`<th>(.+)</th>`isU',
                      		'`<td>(.+)</td>`isU',
                      		'`<rouge>(.+)</rouge>`isU',
                      		'`<orange>(.+)</orange>`isU',
                      		'`<bleu>(.+)</bleu>`isU',
                      		'`<vert>(.+)</vert>`isU',
                      		'`<lien>(.+)</lien>`isU',
                      		'`<lien url="(.+)">(.+)</lien>`isU',
                      		'`<image>(.+)</image>`isU',
                      		'`<citation>(.+)</citation>`isU',
                      		'`<citation nom="(.+)">(.+)</citation>`isU',
                      		'`<citation lien="(.+)">(.+)</citation>`isU',
                      		'`<taille valeur="(.+)">(.+)</taille>`isU'
                      	);  
                      	
                      	$html = array(  
                      		'<em>$1</em>',  
                      		'<strong>$1</strong>',
                      		'<ins>$1</ins>',
                      		'<del>$1</del>', 
                      		'<h2>$1</h2>',
                      		'<h4>$1</h4>',
                      		'<h5>$1</h5>',
                      		'<div style="float:right;">$1</div>',
                      		'<div style="float:left;">$1</div>',
                      		'<table>$1<table>',
                      		'<tr>$1<tr>',
                      		'<th>$1<th>',
                      		'<td>$1<td>',
                      		'<span style="color:red;">$1</span>',
                      		'<span style="color:#CC9900;">$1</span>',
                      		'<span style="color:#318AAC;">$1</span>',
                      		'<span style="color:#009966;">$1</span>',
                      		'<a href="$1">$1</a>',
                      		'<a href="$1">$2</a>',
                      		'<img src="$1" alt="Image utilisateur" />',
                      		'<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                      		'<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                      		'<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                      		'<span class="$1">$2</span>'
                      	); 
                      	
                      	$contenu = preg_replace($zcode, $html, $contenu);
                      	
                      	// parsage des smilies
                      	$smiliesName = array(':yeyh',':lol',':content',':snif',':colère',':att',':info',':erreur',':question');
                      	$smiliesUrl  = array('yehkgouv.png','lolkgouv.png','contentkgouv.png','snifkgouv.png','colèrekgouv.gif','attention.png','info.png','erreur.png','comment.png');
                      	$smiliesPath = "images/smiley/";
                      	
                      	for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                      		$contenu = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $contenu);
                      	}
                      	
                      	// Rtours à la ligne
                      	$contenu = preg_replace('`\n`isU', '<br />', $contenu); 
                      	
                      ?>
                      


                      je dois mettre quoi dedans pour que sa m'enleve aussi mes lignes blanches ?
                      merci d'avance.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        6 juin 2009 à 13:35:12

                        Si tu ne l'as pas déjà lu je te conseille de lire ce tutoriel sur les expressions régulières. Ca pourra t'aider à mieux comprendre ces expressions et c'est valable aussi bien en PHP qu'en Javascript (et ça peut aussi être utile avec d'autres applications comme notepad++ ou beaucoup d'applications sous linux (toutefois pour certains programmes la syntaxe est légèrement différente)).


                        Je pense que ceci doit marcher:
                        <?php
                        // On enlève les éventuels antislash
                            $contenu = stripslashes($donnees['contenu']);
                        
                        // On applique le Zcode
                        $zcode = array(  
                        		'`<italique>(.+)</italique>`isU',  
                        		'`<gras>(.+)</gras>`isU',
                        		'`<souligne>(.+)</souligne>`isU',
                        		'`<barre>(.+)</barre>`isU',
                        		'`<h2>(.+)</h2>`isU',
                        		'`<h4>(.+)</h4>`isU',
                        		'`<h5>(.+)</h5>`isU',
                        		'`<droite>(.+)</droite>`isU',
                        		'`<gauche>(.+)</gauche>`isU',
                        		'`<table>(.+)</table>`isU',
                        		'`<tr>(.+)</tr>`isU',
                        		'`<th>(.+)</th>`isU',
                        		'`<td>(.+)</td>`isU',
                        		'`<rouge>(.+)</rouge>`isU',
                        		'`<orange>(.+)</orange>`isU',
                        		'`<bleu>(.+)</bleu>`isU',
                        		'`<vert>(.+)</vert>`isU',
                        		'`<lien>(.+)</lien>`isU',
                        		'`<lien url="(.+)">(.+)</lien>`isU',
                        		'`<image>(.+)</image>`isU',
                        		'`<citation>(.+)</citation>`isU',
                        		'`<citation nom="(.+)">(.+)</citation>`isU',
                        		'`<citation lien="(.+)">(.+)</citation>`isU',
                        		'`<taille valeur="(.+)">(.+)</taille>`isU',
                        		'`(tr|td|th|table)>[\n\r \t]*(<\/table|<)`isU'
                        	);  
                        	
                        	$html = array(  
                        		'<em>$1</em>',  
                        		'<strong>$1</strong>',
                        		'<ins>$1</ins>',
                        		'<del>$1</del>', 
                        		'<h2>$1</h2>',
                        		'<h4>$1</h4>',
                        		'<h5>$1</h5>',
                        		'<div style="float:right;">$1</div>',
                        		'<div style="float:left;">$1</div>',
                        		'<table>$1<table>',
                        		'<tr>$1<tr>',
                        		'<th>$1<th>',
                        		'<td>$1<td>',
                        		'<span style="color:red;">$1</span>',
                        		'<span style="color:#CC9900;">$1</span>',
                        		'<span style="color:#318AAC;">$1</span>',
                        		'<span style="color:#009966;">$1</span>',
                        		'<a href="$1">$1</a>',
                        		'<a href="$1">$2</a>',
                        		'<img src="$1" alt="Image utilisateur" />',
                        		'<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                        		'<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                        		'<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                        		'<span class="$1">$2</span>',
                        		'$1>$2'
                        	); 
                        	
                        	$contenu = preg_replace($zcode, $html, $contenu);
                        	
                        	// parsage des smilies
                        	$smiliesName = array(':yeyh',':lol',':content',':snif',':colère',':att',':info',':erreur',':question');
                        	$smiliesUrl  = array('yehkgouv.png','lolkgouv.png','contentkgouv.png','snifkgouv.png','colèrekgouv.gif','attention.png','info.png','erreur.png','comment.png');
                        	$smiliesPath = "images/smiley/";
                        	
                        	for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                        		$contenu = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $contenu);
                        	}
                        	
                        	// Rtours à la ligne
                        	$contenu = preg_replace('`\n`isU', '<br />', $contenu); 
                        	
                        ?>
                        


                        Par contre dans ce code tu ne remplaces plus les < par des &lt; (contrairement à ce qui a été fait en JS) donc il peut potentiellement y avoir des problèmes.
                        Le soucis c'est qu'il faut changer pratiquement toutes les expressions pour corriger ce problème (comme dans le code JS où tout est &lt; et &gt; à la place des < et >)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          6 juin 2009 à 13:43:17

                          ok merci,
                          juste pour le js ( l'autre code) cela ne marche pas, j'ai toujours un espace au dessus du tableau.
                          Voici mon code peu etre que j'ai mal recopier.

                          field = field.replace(/&/g, '&amp;');
                          		field = field.replace(/</g, '&lt;').replace(/>/g, '&gt;');
                          		field = field.replace(/\n/g, '<br />').replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
                          		
                          		field = field.replace(/&lt;gras&gt;([\s\S]*?)&lt;\/gras&gt;/g, '<strong>$1</strong>');
                          		field = field.replace(/&lt;italique&gt;([\s\S]*?)&lt;\/italique&gt;/g, '<em>$1</em>');
                          		field = field.replace(/&lt;souligne&gt;([\s\S]*?)&lt;\/souligne&gt;/g, '<ins>$1</ins>');
                          		field = field.replace(/&lt;barre&gt;([\s\S]*?)&lt;\/barre&gt;/g, '<del>$1</del>');
                          		field = field.replace(/&lt;h2&gt;([\s\S]*?)&lt;\/h2&gt;/g, '<h2>$1</h2>');
                          		field = field.replace(/&lt;h4&gt;([\s\S]*?)&lt;\/h4&gt;/g, '<h4>$1</h4>');
                          		field = field.replace(/&lt;h5&gt;([\s\S]*?)&lt;\/h5&gt;/g, '<h5>$1</h5>');
                          		field = field.replace(/&lt;droite&gt;([\s\S]*?)&lt;\/droite&gt;/g, '<div style="float:right;">$1</div>');
                          		field = field.replace(/&lt;gauche&gt;([\s\S]*?)&lt;\/gauche&gt;/g, '<div style="float:left;">$1</div>');
                          		field = field.replace(/&lt;table&gt;([\s\S]*?)&lt;\/table&gt;/g, '<table>$1</table>');
                          		field = field.replace(/&lt;tr&gt;([\s\S]*?)&lt;\/tr&gt;/g, '<tr>$1</tr>');
                          		field = field.replace(/&lt;th&gt;([\s\S]*?)&lt;\/th&gt;/g, '<th>$1</th>');
                          		field = field.replace(/&lt;td&gt;([\s\S]*?)&lt;\/td&gt;/g, '<td>$1</td>');
                          		field = field.replace(/(tr|td|th|table)>(?:<br \/>|\r| |&nbsp;)*(<\/table|<)/g, '$1>$2');
                          		field = field.replace(/&lt;rouge&gt;([\s\S]*?)&lt;\/rouge&gt;/g, '<span style="color:red;">$1</span>');
                          		field = field.replace(/&lt;orange&gt;([\s\S]*?)&lt;\/orange&gt;/g, '<span style="color:#CC9900;">$1</span>');
                          		field = field.replace(/&lt;bleu&gt;([\s\S]*?)&lt;\/bleu&gt;/g, '<span style="color:#318AAC;">$1</span>');
                          		field = field.replace(/&lt;vert&gt;([\s\S]*?)&lt;\/vert&gt;/g, '<span style="color:#009966;">$1</span>')
                          		field = field.replace(/&lt;lien&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1">$1</a>');
                          		field = field.replace(/&lt;lien url="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1" title="$2">$2</a>');
                          		field = field.replace(/&lt;image&gt;([\s\S]*?)&lt;\/image&gt;/g, '<img src="$1" alt="Image" />');
                          		field = field.replace(/&lt;citation nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>');
                          		field = field.replace(/&lt;citation lien=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>');
                          		field = field.replace(/&lt;citation nom=\"(.*?)\" lien=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$2">Citation : $1</a></span><div class="citation2">$3</div>');
                          		field = field.replace(/&lt;citation lien=\"(.*?)\" nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$1">Citation : $2</a></span><div class="citation2">$3</div>');
                          		field = field.replace(/&lt;citation&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation">Citation</span><div class="citation2">$1</div>');
                          		field = field.replace(/&lt;taille valeur=\"(.*?)\"&gt;([\s\S]*?)&lt;\/taille&gt;/g, '<span class="$1">$2</span>');
                          


                          Pouvez vous m'aider ?
                          merci d'avance.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            6 juin 2009 à 14:58:28

                            Peux tu donner ton texte où tu obtiens un espace car je viens de tester avec ce code et je n'ai pas d'espace.

                            C'est toujours un espace de 5 lignes, ou c'est 1 seule ligne?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              6 juin 2009 à 15:14:35

                              ok,
                              voici le texte que je rentre dans la zone de saisie de mon systeme de new:
                              <table>
                              	<caption>Touches principales</caption>
                              	<tr>
                              		<th>Nom</th>
                              		<th>Déscription</th>
                              		<th>Image</th>
                              	</tr>
                              	<tr>
                              <td class="n">la touche entrée</td>
                              <td>elle permet de valider quelque chose ou alors sur un traitement de texte comme Word d’aller à la ligne.</td>
                              <td><img src="images/tutos/tuto_windows_xp/clavier/entrée.png" alt="touche entrée"  /></td>
                              	</tr>
                              	<tr>
                              		<td class="n">la touche retour arrière</td>
                              		<td>permet d’effacer votre texte de droite à gauche.</td>
                              		<td><img src="images/tutos/tuto_windows_xp/clavier/retour_arriere.png"alt="touche retour arrière " /></td>
                              	</tr>
                              	<tr>
                              		<td class="n">la touche éch</td>
                              		<td>C’est la touche échappe qui permet de quitter une application, par exemple de fermer un diaporama d’image.</td>
                              		<td><img src="images/tutos/tuto_windows_xp/clavier/ech.png"alt="touche éch" /></td>
                              	</tr>
                              	<tr>
                              		<td class="n">verr.Maj</td>
                              		<td>touche qui permet d’écrire en majuscule. Il suffit d’appuyer  à nouveau dessus pour quitter le mode majuscule.</td>
                              		<td><img src="images/tutos/tuto_windows_xp/clavier/verr.maj.png"alt="verr.Maj" /></td>
                              	</tr>
                              	<tr>
                              		<td class="n">tab</td>
                              		<td>Touche de tabulation.</td>
                              		<td><img src="images/tutos/tuto_windows_xp/clavier/tab.png"alt="Tab" /></td>
                              	</tr>
                              	<tr>
                              		<td class="n">Espace</td>
                              		<td>Cette grande barre permet d’effectuer un espace entre les mots.</td>
                              		<td><img src="images/tutos/tuto_windows_xp/clavier/espace.png"alt="Espace" /></td>
                              	</tr>
                              	<tr>
                              		<td class="n">Verr.Num</td>
                              		<td>touche pour activer/désactiver le pavé numérique.</td>
                              		<td><img src="images/tutos/tuto_windows_xp/clavier/verr.num.png"alt="Verr.Num " /></td>
                              	</tr>
                              	</table>
                              


                              Voulez vous les code entier de ma page de new?

                              merci d'avance.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                6 juin 2009 à 17:26:18

                                Ha ok.
                                En fait il y aplusieurs problèmes.
                                Tout d'abord <caption>n'est pas interprété par le code JS, il faudrait le rajouter.
                                Ensuite la ligne que j'ai ajoutée n'enlève les sauts de ligne que entre les balise table/tr/td/th donc il faudrait aussi ajouter caption.

                                Et enfin tu ajoutes un attribut à certains td or le code JS ne sait pas les interpréter (ou sinon ce n'est pas le code que tu m'as montré précédemment). Il n'interprète que les <td> sans attribut et de même pour la ligne que j'ai écrite.
                                Si tu veux ajouter des attributs il faut le spécifier (avec par exemple une expression du genre: <td[^>]*>
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  6 juin 2009 à 19:15:48

                                  ok,
                                  j'ai pas trop compris ce qui faut ajouter.
                                  voici mon code:
                                  field = field.replace(/&/g, '&amp;');
                                  		field = field.replace(/</g, '&lt;').replace(/>/g, '&gt;');
                                  		field = field.replace(/\n/g, '<br />').replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
                                  		
                                  		field = field.replace(/&lt;gras&gt;([\s\S]*?)&lt;\/gras&gt;/g, '<strong>$1</strong>');
                                  		field = field.replace(/&lt;italique&gt;([\s\S]*?)&lt;\/italique&gt;/g, '<em>$1</em>');
                                  		field = field.replace(/&lt;souligne&gt;([\s\S]*?)&lt;\/souligne&gt;/g, '<ins>$1</ins>');
                                  		field = field.replace(/&lt;barre&gt;([\s\S]*?)&lt;\/barre&gt;/g, '<del>$1</del>');
                                  		field = field.replace(/&lt;h2&gt;([\s\S]*?)&lt;\/h2&gt;/g, '<h2>$1</h2>');
                                  		field = field.replace(/&lt;h4&gt;([\s\S]*?)&lt;\/h4&gt;/g, '<h4>$1</h4>');
                                  		field = field.replace(/&lt;h5&gt;([\s\S]*?)&lt;\/h5&gt;/g, '<h5>$1</h5>');
                                  		field = field.replace(/&lt;droite&gt;([\s\S]*?)&lt;\/droite&gt;/g, '<div style="float:right;">$1</div>');
                                  		field = field.replace(/&lt;gauche&gt;([\s\S]*?)&lt;\/gauche&gt;/g, '<div style="float:left;">$1</div>');
                                  		field = field.replace(/&lt;table&gt;([\s\S]*?)&lt;\/table&gt;/g, '<table>$1</table>');
                                  		field = field.replace(/&lt;tr&gt;([\s\S]*?)&lt;\/tr&gt;/g, '<tr>$1</tr>');
                                  		field = field.replace(/&lt;th&gt;([\s\S]*?)&lt;\/th&gt;/g, '<th>$1</th>');
                                  		field = field.replace(/&lt;td&gt;([\s\S]*?)&lt;\/td&gt;/g, '<td>$1</td>');
                                  		field = field.replace(/(tr|td|th|table)>(?:<br \/>|\r| |&nbsp;)*(<\/table|<)/g, '$1>$2');
                                  		field = field.replace(/&lt;rouge&gt;([\s\S]*?)&lt;\/rouge&gt;/g, '<span style="color:red;">$1</span>');
                                  		field = field.replace(/&lt;orange&gt;([\s\S]*?)&lt;\/orange&gt;/g, '<span style="color:#CC9900;">$1</span>');
                                  		field = field.replace(/&lt;bleu&gt;([\s\S]*?)&lt;\/bleu&gt;/g, '<span style="color:#318AAC;">$1</span>');
                                  		field = field.replace(/&lt;vert&gt;([\s\S]*?)&lt;\/vert&gt;/g, '<span style="color:#009966;">$1</span>')
                                  		field = field.replace(/&lt;lien&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1">$1</a>');
                                  		field = field.replace(/&lt;lien url="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1" title="$2">$2</a>');
                                  		field = field.replace(/&lt;image&gt;([\s\S]*?)&lt;\/image&gt;/g, '<img src="$1" alt="Image" />');
                                  		field = field.replace(/&lt;citation nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>');
                                  		field = field.replace(/&lt;citation lien=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>');
                                  		field = field.replace(/&lt;citation nom=\"(.*?)\" lien=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$2">Citation : $1</a></span><div class="citation2">$3</div>');
                                  		field = field.replace(/&lt;citation lien=\"(.*?)\" nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$1">Citation : $2</a></span><div class="citation2">$3</div>');
                                  		field = field.replace(/&lt;citation&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation">Citation</span><div class="citation2">$1</div>');
                                  		field = field.replace(/&lt;taille valeur=\"(.*?)\"&gt;([\s\S]*?)&lt;\/taille&gt;/g, '<span class="$1">$2</span>');
                                  


                                  Pouvez vous m'aider ?
                                  merci d'avance.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    6 juin 2009 à 21:04:22


                                    field = field.replace(/&lt;table&gt;([\s\S]*?)&lt;\/table&gt;/g, '<table>$1</table>');
                                    field = field.replace(/&lt;tr&gt;([\s\S]*?)&lt;\/tr&gt;/g, '<tr>$1</tr>');
                                    field = field.replace(/&lt;th&gt;([\s\S]*?)&lt;\/th&gt;/g, '<th>$1</th>');
                                    field = field.replace(/&lt;td(.*?)&gt;([\s\S]*?)&lt;\/td&gt;/g, '<td$1>$2</td>');
                                    field = field.replace(/&lt;caption&gt;([\s\S]*?)&lt;\/caption&gt;/g, '<caption>$1</caption>');
                                    field = field.replace(/(tr.*?|td|th|table|caption)>(?:<br \/>|\r| |&nbsp;)*(<\/table|<)/g, '$1>$2');
                                    


                                    Je n'ai fait la modif que pour des attributs à la balise td si tu veux aussi mettre des attributs aux autres balises je te laisse adapter le code en fonction de tes besoins.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      7 juin 2009 à 9:36:26

                                      Merci sa marche nickel.
                                      Sauf pour la page ou on la voit
                                      code:
                                      <?php
                                      // On enlève les éventuels antislash
                                          $contenu = stripslashes($donnees['contenu']);
                                      
                                      // On applique le Zcode
                                      $zcode = array(  
                                      		'`<italique>(.+)</italique>`isU',  
                                      		'`<gras>(.+)</gras>`isU',
                                      		'`<souligne>(.+)</souligne>`isU',
                                      		'`<barre>(.+)</barre>`isU',
                                      		'`<h2>(.+)</h2>`isU',
                                      		'`<h4>(.+)</h4>`isU',
                                      		'`<h5>(.+)</h5>`isU',
                                      		'`<droite>(.+)</droite>`isU',
                                      		'`<gauche>(.+)</gauche>`isU',
                                      		'`<table>(.+)</table>`isU',
                                      		'`<tr>(.+)</tr>`isU',
                                      		'`<th>(.+)</th>`isU',
                                      		'`<td>(.+)</td>`isU',
                                      		'`<rouge>(.+)</rouge>`isU',
                                      		'`<orange>(.+)</orange>`isU',
                                      		'`<bleu>(.+)</bleu>`isU',
                                      		'`<vert>(.+)</vert>`isU',
                                      		'`<lien>(.+)</lien>`isU',
                                      		'`<lien url="(.+)">(.+)</lien>`isU',
                                      		'`<image>(.+)</image>`isU',
                                      		'`<citation>(.+)</citation>`isU',
                                      		'`<citation nom="(.+)">(.+)</citation>`isU',
                                      		'`<citation lien="(.+)">(.+)</citation>`isU',
                                      		'`<taille valeur="(.+)">(.+)</taille>`isU',
                                      		'`(tr|td|th|table)>[\n\r \t]*(<\/table|<)`isU'
                                      	);  
                                      	
                                      	$html = array(  
                                      		'<em>$1</em>',  
                                      		'<strong>$1</strong>',
                                      		'<ins>$1</ins>',
                                      		'<del>$1</del>', 
                                      		'<h2>$1</h2>',
                                      		'<h4>$1</h4>',
                                      		'<h5>$1</h5>',
                                      		'<div style="float:right;">$1</div>',
                                      		'<div style="float:left;">$1</div>',
                                      		'<table>$1<table>',
                                      		'<tr>$1<tr>',
                                      		'<th>$1<th>',
                                      		'<td>$1<td>',
                                      		'<span style="color:red;">$1</span>',
                                      		'<span style="color:#CC9900;">$1</span>',
                                      		'<span style="color:#318AAC;">$1</span>',
                                      		'<span style="color:#009966;">$1</span>',
                                      		'<a href="$1">$1</a>',
                                      		'<a href="$1">$2</a>',
                                      		'<img src="$1" alt="Image utilisateur" />',
                                      		'<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                                      		'<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                                      		'<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                                      		'<span class="$1">$2</span>',
                                      		'$1>$2'
                                      	); 
                                      	
                                      	$contenu = preg_replace($zcode, $html, $contenu);
                                      	
                                      	// parsage des smilies
                                      	$smiliesName = array(':yeyh',':lol',':content',':snif',':colère',':att',':info',':erreur',':question');
                                      	$smiliesUrl  = array('yehkgouv.png','lolkgouv.png','contentkgouv.png','snifkgouv.png','colèrekgouv.gif','attention.png','info.png','erreur.png','comment.png');
                                      	$smiliesPath = "images/smiley/";
                                      	
                                      	for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                                      		$contenu = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $contenu);
                                      	}
                                      	
                                      	// Rtours à la ligne
                                      	$contenu = preg_replace('`\n`isU', '<br />', $contenu); 
                                      	
                                      ?>
                                      


                                      Que faut'il rajouter?
                                      merci d'avance.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        7 juin 2009 à 11:56:36

                                        Il faut faire la même chose:

                                        $zcode = array(  
                                        		'`<italique>(.+)</italique>`isU',  
                                        		'`<gras>(.+)</gras>`isU',
                                        		'`<souligne>(.+)</souligne>`isU',
                                        		'`<barre>(.+)</barre>`isU',
                                        		'`<h2>(.+)</h2>`isU',
                                        		'`<h4>(.+)</h4>`isU',
                                        		'`<h5>(.+)</h5>`isU',
                                        		'`<droite>(.+)</droite>`isU',
                                        		'`<gauche>(.+)</gauche>`isU',
                                        		'`<table>(.+)</table>`isU',
                                        		'`<tr>(.+)</tr>`isU',
                                        		'`<th>(.+)</th>`isU',
                                        		'`<td(.*)>(.+)</td>`isU',
                                        		'`<caption>(.+)</caption>`isU',
                                        		'`<rouge>(.+)</rouge>`isU',
                                        		'`<orange>(.+)</orange>`isU',
                                        		'`<bleu>(.+)</bleu>`isU',
                                        		'`<vert>(.+)</vert>`isU',
                                        		'`<lien>(.+)</lien>`isU',
                                        		'`<lien url="(.+)">(.+)</lien>`isU',
                                        		'`<image>(.+)</image>`isU',
                                        		'`<citation>(.+)</citation>`isU',
                                        		'`<citation nom="(.+)">(.+)</citation>`isU',
                                        		'`<citation lien="(.+)">(.+)</citation>`isU',
                                        		'`<taille valeur="(.+)">(.+)</taille>`isU',
                                        		'`(tr.*|td|th|table|caption)>[\n\r \t]*(<\/table|<)`isU'
                                        	);  
                                        	
                                        	$html = array(  
                                        		'<em>$1</em>',  
                                        		'<strong>$1</strong>',
                                        		'<ins>$1</ins>',
                                        		'<del>$1</del>', 
                                        		'<h2>$1</h2>',
                                        		'<h4>$1</h4>',
                                        		'<h5>$1</h5>',
                                        		'<div style="float:right;">$1</div>',
                                        		'<div style="float:left;">$1</div>',
                                        		'<table>$1</table>',
                                        		'<tr>$1</tr>',
                                        		'<th>$1</th>',
                                        		'<td$1>$2</td>',
                                        		'<caption>$1</caption>',
                                        		'<span style="color:red;">$1</span>',
                                        		'<span style="color:#CC9900;">$1</span>',
                                        		'<span style="color:#318AAC;">$1</span>',
                                        		'<span style="color:#009966;">$1</span>',
                                        		'<a href="$1">$1</a>',
                                        		'<a href="$1">$2</a>',
                                        		'<img src="$1" alt="Image utilisateur" />',
                                        		'<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                                        		'<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                                        		'<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                                        		'<span class="$1">$2</span>',
                                        		'$1>$2'
                                        	);
                                        
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          8 juin 2009 à 9:25:48

                                          bonjour,
                                          Désolé mais sa ne marche pas dans la page final.
                                          Pouvez vous m'aider?
                                          merci d'avance.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            8 juin 2009 à 10:01:48

                                            Peux-tu être plus précis?
                                            Qu'est-ce qui ne marche pas?

                                            Vu que c'est du PHP je ne peux pas tester facilement.

                                            Peux tu mettre le texte envoyé (s'il est différent de celui qui est au-dessus) et la sortie (ce qui est affiché par le PHP)?
                                            ou un lien vers ta page afin de pouvoir tester et voir les effets afin d'identifier le problème
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              8 juin 2009 à 10:07:38

                                              bonjour,

                                              ok donc dans la page final donc le code qui est au-dessus, le tableau a toujours ces lignes blanches au dessu de lui, alors que dans la redaction de la news il n'y en a plus.J'ai entrer le meme texte aue la dernière fois.

                                              je sais pas si c'est fait expré, mais le dernier code que vous m'avez donné est le meme que celui que j'avais au depart.Quels changement faut'il faire dessus pour que sa marche ?

                                              je pensse qui manque cette ligne:
                                              field = field.replace(/(tr.*?|td|th|table|caption)>(?:<br \/>|\r| |&nbsp;)*(<\/table|<)/g, '$1>$2');
                                              


                                              Comment l'adapter pour ce code:
                                              <?php
                                              // On enlève les éventuels antislash
                                                  $contenu = stripslashes($donnees['contenu']);
                                              
                                              
                                              	$zcode = array(  
                                              		'`<italique>(.+)</italique>`isU',  
                                              		'`<gras>(.+)</gras>`isU',
                                              		'`<souligne>(.+)</souligne>`isU',
                                              		'`<barre>(.+)</barre>`isU',
                                              		'`<h2>(.+)</h2>`isU',
                                              		'`<h4>(.+)</h4>`isU',
                                              		'`<h5>(.+)</h5>`isU',
                                              		'`<droite>(.+)</droite>`isU',
                                              		'`<gauche>(.+)</gauche>`isU',
                                              		'`<table>(.+)</table>`isU',
                                              		'`<tr>(.+)</tr>`isU',
                                              		'`<th>(.+)</th>`isU',
                                              		'`<td(.*)>(.+)</td>`isU',
                                              		'`<caption>(.+)</caption>`isU',
                                              		'`<rouge>(.+)</rouge>`isU',
                                              		'`<orange>(.+)</orange>`isU',
                                              		'`<bleu>(.+)</bleu>`isU',
                                              		'`<vert>(.+)</vert>`isU',
                                              		'`<lien>(.+)</lien>`isU',
                                              		'`<lien url="(.+)">(.+)</lien>`isU',
                                              		'`<image>(.+)</image>`isU',
                                              		'`<citation>(.+)</citation>`isU',
                                              		'`<citation nom="(.+)">(.+)</citation>`isU',
                                              		'`<citation lien="(.+)">(.+)</citation>`isU',
                                              		'`<taille valeur="(.+)">(.+)</taille>`isU',
                                              		'`(tr.*|td|th|table|caption)>[\n\r \t]*(<\/table|<)`isU'
                                              	);  
                                              	
                                              	$html = array(  
                                              		'<em>$1</em>',  
                                              		'<strong>$1</strong>',
                                              		'<ins>$1</ins>',
                                              		'<del>$1</del>', 
                                              		'<h2>$1</h2>',
                                              		'<h4>$1</h4>',
                                              		'<h5>$1</h5>',
                                              		'<div style="float:right;">$1</div>',
                                              		'<div style="float:left;">$1</div>',
                                              		'<table>$1</table>',
                                              		'<tr>$1</tr>',
                                              		'<th>$1</th>',
                                              		'<td$1>$2</td>',
                                              		'<caption>$1</caption>',
                                              		'<span style="color:red;">$1</span>',
                                              		'<span style="color:#CC9900;">$1</span>',
                                              		'<span style="color:#318AAC;">$1</span>',
                                              		'<span style="color:#009966;">$1</span>',
                                              		'<a href="$1">$1</a>',
                                              		'<a href="$1">$2</a>',
                                              		'<img src="$1" alt="Image utilisateur" />',
                                              		'<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                                              		'<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                                              		'<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                                              		'<span class="$1">$2</span>',
                                              		'$1>$2'
                                              	);
                                               
                                              	
                                              	$contenu = preg_replace($zcode, $html, $contenu);
                                              	
                                              	// parsage des smilies
                                              	$smiliesName = array(':yeyh',':lol',':content',':snif',':colère',':att',':info',':erreur',':question');
                                              	$smiliesUrl  = array('yehkgouv.png','lolkgouv.png','contentkgouv.png','snifkgouv.png','colèrekgouv.gif','attention.png','info.png','erreur.png','comment.png');
                                              	$smiliesPath = "images/smiley/";
                                              	
                                              	for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                                              		$contenu = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $contenu);
                                              	}
                                              	
                                              	// Rtours à la ligne
                                              	$contenu = preg_replace('`\n`isU', '<br />', $contenu); 
                                              	
                                              ?>
                                              

                                              Pouvez vous m'aider?

                                              merci d'avance.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                8 juin 2009 à 22:46:22

                                                Ce n'est pas le même code il y a le caption en plus, quelques corrections sur les td,th et tr (il manquait les / de fermeture de balise dans le texte de remplacement) et l'ajout d'attribut pour les td

                                                cette ligne :
                                                field = field.replace(/(tr.*?|td|th|table|caption)>(?:<br \/>|\r| |&nbsp;)*(<\/table|<)/g, '$1>$2');
                                                
                                                correspond (à peu près) à cette ligne:
                                                '`(tr.*|td|th|table|caption)>[\n\r \t]*(<\/table|<)`isU'
                                                


                                                Par contre il y a peut être une faute dans cette ligne, essaie de la remplacer par:
                                                '`(tr.*|td|th|table|caption)>[\n\r \t]*(</table|<)`isU'
                                                

                                                le / n'a peut-être pas besoin d'être échappé en PHP


                                                Si ça ne marche toujours pas donne moi le résultat HTML afin que je puisse voir ce qui n'est pas correctement remplacé.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  9 juin 2009 à 19:08:44

                                                  bonjour,
                                                  ce ne marche toujours pas.
                                                  quand je fait source de ma page final voil le code que j'obtient pour le tableau:

                                                  <br />        <table>
                                                  <br />        <caption>Touches principales</caption>
                                                  <br />        <tr>
                                                  <br />                <th>Nom</th>
                                                  <br />                <th>Déscription</th>
                                                  <br />                <th>Image</th>
                                                  <br />        </tr>
                                                  <br />        <tr>
                                                  <br /><td class="n">la touche entrée</td>
                                                  <br /><td>elle permet de valider quelque chose ou alors sur un traitement de texte comme Word daller à la ligne.</td>
                                                  <br /><td><img src="images/tutos/tuto_windows_xp/clavier/entrée.png" alt="touche entrée"  /></td>
                                                  <br />        </tr>
                                                  <br />        <tr>
                                                  <br />                <td class="n">la touche retour arrière</td>
                                                  <br />                <td>permet deffacer votre texte de droite à gauche.</td>
                                                  <br />                <td><img src="images/tutos/tuto_windows_xp/clavier/retour_arriere.png"alt="touche retour arrière " /></td>
                                                  <br />        </tr>
                                                  <br />        <tr>
                                                  <br />                <td class="n">la touche éch</td>
                                                  <br />                <td>Cest la touche échappe qui permet de quitter une application, par exemple de fermer un diaporama dimage.</td>
                                                  <br />                <td><img src="images/tutos/tuto_windows_xp/clavier/ech.png"alt="touche éch" /></td>
                                                  <br />        </tr>
                                                  <br />        <tr>
                                                  <br />                <td class="n">verr.Maj</td>
                                                  <br />                <td>touche qui permet décrire en majuscule. Il suffit dappuyer  à nouveau dessus pour quitter le mode majuscule.</td>
                                                  <br />                <td><img src="images/tutos/tuto_windows_xp/clavier/verr.maj.png"alt="verr.Maj" /></td>
                                                  <br />        </tr>
                                                  <br />        <tr>
                                                  <br />                <td class="n">tab</td>
                                                  <br />                <td>Touche de tabulation.</td>
                                                  <br />                <td><img src="images/tutos/tuto_windows_xp/clavier/tab.png"alt="Tab" /></td>
                                                  <br />        </tr>
                                                  <br />        <tr>
                                                  <br />                <td class="n">Espace</td>
                                                  <br />                <td>Cette grande barre permet deffectuer un espace entre les mots.</td>
                                                  <br />                <td><img src="images/tutos/tuto_windows_xp/clavier/espace.png"alt="Espace" /></td>
                                                  <br />        </tr>
                                                  <br />        <tr>
                                                  <br />                <td class="n">Verr.Num</td>
                                                  <br />                <td>touche pour activer/désactiver le pavé numérique.</td>
                                                  <br />                <td><img src="images/tutos/tuto_windows_xp/clavier/verr.num.png"alt="Verr.Num " /></td>
                                                  <br />        </tr>
                                                  <br />        </table>


                                                  Pouvez vous m'aider?
                                                  merci d'avance.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    10 juin 2009 à 23:07:03

                                                    Hum, es-tu sûr d'avoir bien mis à jour ton fichier php?
                                                    Car j'ai fait un petit test et ça à l'air de fonctionner correctement: test

                                                    Essaie de vérifier si ton contenu n'est pas altéré avant les modifications (le preg_replace). En fait je me demande si tes remplacements sont vraiment fait...
                                                    Tu peux essayer
                                                    <italique>test</italique>
                                                    pour voir si le texte est bien en italique
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      11 juin 2009 à 18:07:07

                                                      Bonjour,
                                                      Oui mon texte est bien en italique.
                                                      Sur ma page ou j'ecrit il n'y a pas d'espace au dessus du tableau.C'est maintenant dans la page final, la page ou j'afiche mes news.
                                                      Je pense donc que le problème vient de cette page et donc de ce code:
                                                      <?php
                                                      // On enlève les éventuels antislash
                                                          $contenu = stripslashes($donnees['contenu']);
                                                      
                                                      
                                                      	$zcode = array(  
                                                      		'`<italique>(.+)</italique>`isU',  
                                                      		'`<gras>(.+)</gras>`isU',
                                                      		'`<souligne>(.+)</souligne>`isU',
                                                      		'`<barre>(.+)</barre>`isU',
                                                      		'`<h2>(.+)</h2>`isU',
                                                      		'`<h4>(.+)</h4>`isU',
                                                      		'`<h5>(.+)</h5>`isU',
                                                      		'`<droite>(.+)</droite>`isU',
                                                      		'`<gauche>(.+)</gauche>`isU',
                                                      		'`<table>(.+)</table>`isU',
                                                      		'`<tr>(.+)</tr>`isU',
                                                      		'`<th>(.+)</th>`isU',
                                                      		'`<td(.*)>(.+)</td>`isU',
                                                      		'`<caption>(.+)</caption>`isU',
                                                      		'`<rouge>(.+)</rouge>`isU',
                                                      		'`<orange>(.+)</orange>`isU',
                                                      		'`<bleu>(.+)</bleu>`isU',
                                                      		'`<vert>(.+)</vert>`isU',
                                                      		'`<lien>(.+)</lien>`isU',
                                                      		'`<lien url="(.+)">(.+)</lien>`isU',
                                                      		'`<image>(.+)</image>`isU',
                                                      		'`<citation>(.+)</citation>`isU',
                                                      		'`<citation nom="(.+)">(.+)</citation>`isU',
                                                      		'`<citation lien="(.+)">(.+)</citation>`isU',
                                                      		'`<taille valeur="(.+)">(.+)</taille>`isU',
                                                      		'`(tr.*|td|th|table|caption)>[\n\r \t]*(<\/table|<)`isU'
                                                      	);  
                                                      	
                                                      	$html = array(  
                                                      		'<em>$1</em>',  
                                                      		'<strong>$1</strong>',
                                                      		'<ins>$1</ins>',
                                                      		'<del>$1</del>', 
                                                      		'<h2>$1</h2>',
                                                      		'<h4>$1</h4>',
                                                      		'<h5>$1</h5>',
                                                      		'<div style="float:right;">$1</div>',
                                                      		'<div style="float:left;">$1</div>',
                                                      		'<table>$1</table>',
                                                      		'<tr>$1</tr>',
                                                      		'<th>$1</th>',
                                                      		'<td$1>$2</td>',
                                                      		'<caption>$1</caption>',
                                                      		'<span style="color:red;">$1</span>',
                                                      		'<span style="color:#CC9900;">$1</span>',
                                                      		'<span style="color:#318AAC;">$1</span>',
                                                      		'<span style="color:#009966;">$1</span>',
                                                      		'<a href="$1">$1</a>',
                                                      		'<a href="$1">$2</a>',
                                                      		'<img src="$1" alt="Image utilisateur" />',
                                                      		'<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                                                      		'<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                                                      		'<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                                                      		'<span class="$1">$2</span>',
                                                      		'$1>$2'
                                                      	);
                                                       
                                                      	
                                                      	$contenu = preg_replace($zcode, $html, $contenu);
                                                      	
                                                      	// parsage des smilies
                                                      	$smiliesName = array(':yeyh',':lol',':content',':snif',':colère',':att',':info',':erreur',':question');
                                                      	$smiliesUrl  = array('yehkgouv.png','lolkgouv.png','contentkgouv.png','snifkgouv.png','colèrekgouv.gif','attention.png','info.png','erreur.png','comment.png');
                                                      	$smiliesPath = "images/smiley/";
                                                      	
                                                      	for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                                                      		$contenu = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $contenu);
                                                      	}
                                                      	
                                                      	// Rtours à la ligne
                                                      	$contenu = preg_replace('`\n`isU', '<br />', $contenu); 
                                                      	
                                                      ?>
                                                      


                                                      Je vous donne aussi le code de la page ou j'ecrit mes news au cas ou:
                                                      field = field.replace(/&/g, '&amp;');
                                                      		field = field.replace(/</g, '&lt;').replace(/>/g, '&gt;');
                                                      		field = field.replace(/\n/g, '<br />').replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
                                                      		
                                                      		field = field.replace(/&lt;gras&gt;([\s\S]*?)&lt;\/gras&gt;/g, '<strong>$1</strong>');
                                                      		field = field.replace(/&lt;italique&gt;([\s\S]*?)&lt;\/italique&gt;/g, '<em>$1</em>');
                                                      		field = field.replace(/&lt;souligne&gt;([\s\S]*?)&lt;\/souligne&gt;/g, '<ins>$1</ins>');
                                                      		field = field.replace(/&lt;barre&gt;([\s\S]*?)&lt;\/barre&gt;/g, '<del>$1</del>');
                                                      		field = field.replace(/&lt;h2&gt;([\s\S]*?)&lt;\/h2&gt;/g, '<h2>$1</h2>');
                                                      		field = field.replace(/&lt;h4&gt;([\s\S]*?)&lt;\/h4&gt;/g, '<h4>$1</h4>');
                                                      		field = field.replace(/&lt;h5&gt;([\s\S]*?)&lt;\/h5&gt;/g, '<h5>$1</h5>');
                                                      		field = field.replace(/&lt;droite&gt;([\s\S]*?)&lt;\/droite&gt;/g, '<div style="float:right;">$1</div>');
                                                      		field = field.replace(/&lt;gauche&gt;([\s\S]*?)&lt;\/gauche&gt;/g, '<div style="float:left;">$1</div>');
                                                      		field = field.replace(/&lt;table&gt;([\s\S]*?)&lt;\/table&gt;/g, '<table>$1</table>');
                                                      		field = field.replace(/&lt;tr&gt;([\s\S]*?)&lt;\/tr&gt;/g, '<tr>$1</tr>');
                                                      		field = field.replace(/&lt;th&gt;([\s\S]*?)&lt;\/th&gt;/g, '<th>$1</th>');
                                                      		field = field.replace(/&lt;td(.*?)&gt;([\s\S]*?)&lt;\/td&gt;/g, '<td$1>$2</td>');
                                                      		field = field.replace(/&lt;caption&gt;([\s\S]*?)&lt;\/caption&gt;/g, '<caption>$1</caption>');
                                                      		field = field.replace(/(tr.*?|td|th|table|caption)>(?:<br \/>|\r| |&nbsp;)*(<\/table|<)/g, '$1>$2');
                                                      		field = field.replace(/&lt;rouge&gt;([\s\S]*?)&lt;\/rouge&gt;/g, '<span style="color:red;">$1</span>');
                                                      		field = field.replace(/&lt;orange&gt;([\s\S]*?)&lt;\/orange&gt;/g, '<span style="color:#CC9900;">$1</span>');
                                                      		field = field.replace(/&lt;bleu&gt;([\s\S]*?)&lt;\/bleu&gt;/g, '<span style="color:#318AAC;">$1</span>');
                                                      		field = field.replace(/&lt;vert&gt;([\s\S]*?)&lt;\/vert&gt;/g, '<span style="color:#009966;">$1</span>')
                                                      		field = field.replace(/&lt;lien&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1">$1</a>');
                                                      		field = field.replace(/&lt;lien url="([\s\S]*?)"&gt;([\s\S]*?)&lt;\/lien&gt;/g, '<a href="$1" title="$2">$2</a>');
                                                      		field = field.replace(/&lt;image&gt;([\s\S]*?)&lt;\/image&gt;/g, '<img src="$1" alt="Image" />');
                                                      		field = field.replace(/&lt;citation nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>');
                                                      		field = field.replace(/&lt;citation lien=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>');
                                                      		field = field.replace(/&lt;citation nom=\"(.*?)\" lien=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$2">Citation : $1</a></span><div class="citation2">$3</div>');
                                                      		field = field.replace(/&lt;citation lien=\"(.*?)\" nom=\"(.*?)\"&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation"><a href="$1">Citation : $2</a></span><div class="citation2">$3</div>');
                                                      		field = field.replace(/&lt;citation&gt;([\s\S]*?)&lt;\/citation&gt;/g, '<br /><span class="citation">Citation</span><div class="citation2">$1</div>');
                                                      		field = field.replace(/&lt;taille valeur=\"(.*?)\"&gt;([\s\S]*?)&lt;\/taille&gt;/g, '<span class="$1">$2</span>');
                                                      


                                                      En esperent que vous pouvez m'aider.
                                                      merci d'avance.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        11 juin 2009 à 21:27:37

                                                        Ce code PHP fonctionne. Il suffit de regarder ma page de test où je n'ai pris QUE la partie PHP (il suffit de regarder le code source pour voir qu'il n'y a pas de Javascript). Je ne fais qu'envoyer le texte au PHP et celui-ci le traite puis l'affiche.

                                                        Dans le code que tu montres l'affichage n'est pas indiqué donc je ne sais pas comment tu l'affiche et à part la partie $donnees['contenu'] je ne sais pas comment tu récupères ton texte (je ne sais pas ce qu'est $donnees). Cela pose aussi la question: comment appelles tu-cette page?
                                                        Je suppose que tu le sauves dans une base de données, est-ce que tu n'ajoutes pas quelques changement au code (ce qui justifierai le problème de conversion ensuite)?

                                                        Il y a beaucoup de questions qui font que je ne peux t'aider sans plus d'informations et qu'en l'occurence ce code PHP fonctionne (voir mon lien).

                                                        Si tu veux tester par toi-même voici mon code PHP:
                                                        <?php
                                                        //récupération du contenu
                                                        	$contenu=$_GET['contenu'];
                                                        	if($contenu=="") $contenu=$_POST['contenu'];
                                                        
                                                        // On enlève les éventuels antislash
                                                        	//$contenu = stripslashes($donnees['contenu']);
                                                        	$contenu=stripslashes($contenu);
                                                        
                                                        //affichage du formulaire
                                                        	print('<style>table{border:1px solid;}td{border:1px dotted;}th{border:1px dotted red;}</style><form action="?"><textarea name="contenu" rows="15" cols="70">'.$contenu.'</textarea><input type="submit" value="test"></form>&lt;style&gt;<br>table{border:1px solid;}<br>td{border:1px dotted;}<br>th{border:1px dotted red;}<br>&lt;/style&gt;');
                                                        	print('<hr>');
                                                        
                                                        //traitement du contenu
                                                        	$zcode = array(
                                                        		'`<italique>(.+)</italique>`isU',
                                                        		'`<gras>(.+)</gras>`isU',
                                                        		'`<souligne>(.+)</souligne>`isU',
                                                        		'`<barre>(.+)</barre>`isU',
                                                        		'`<h2>(.+)</h2>`isU',
                                                        		'`<h4>(.+)</h4>`isU',
                                                        		'`<h5>(.+)</h5>`isU',
                                                        		'`<droite>(.+)</droite>`isU',
                                                        		'`<gauche>(.+)</gauche>`isU',
                                                        		'`<table>(.+)</table>`isU',
                                                        		'`<tr>(.+)</tr>`isU',
                                                        		'`<th>(.+)</th>`isU',
                                                        		'`<td(.*)>(.+)</td>`isU',
                                                        		'`<caption>(.+)</caption>`isU',
                                                        		'`<rouge>(.+)</rouge>`isU',
                                                        		'`<orange>(.+)</orange>`isU',
                                                        		'`<bleu>(.+)</bleu>`isU',
                                                        		'`<vert>(.+)</vert>`isU',
                                                        		'`<lien>(.+)</lien>`isU',
                                                        		'`<lien url="(.+)">(.+)</lien>`isU',
                                                        		'`<image>(.+)</image>`isU',
                                                        		'`<citation>(.+)</citation>`isU',
                                                        		'`<citation nom="(.+)">(.+)</citation>`isU',
                                                        		'`<citation lien="(.+)">(.+)</citation>`isU',
                                                        		'`<taille valeur="(.+)">(.+)</taille>`isU',
                                                        		'`(tr.*|td|th|table|caption)>[\n\r \t]*(</table|<)`isU'
                                                        	);
                                                        
                                                        	$html = array(
                                                        		'<em>$1</em>',
                                                        		'<strong>$1</strong>',
                                                        		'<ins>$1</ins>',
                                                        		'<del>$1</del>',
                                                        		'<h2>$1</h2>',
                                                        		'<h4>$1</h4>',
                                                        		'<h5>$1</h5>',
                                                        		'<div style="float:right;">$1</div>',
                                                        		'<div style="float:left;">$1</div>',
                                                        		'<table>$1</table>',
                                                        		'<tr>$1</tr>',
                                                        		'<th>$1</th>',
                                                        		'<td$1>$2</td>',
                                                        		'<caption>$1</caption>',
                                                        		'<span style="color:red;">$1</span>',
                                                        		'<span style="color:#CC9900;">$1</span>',
                                                        		'<span style="color:#318AAC;">$1</span>',
                                                        		'<span style="color:#009966;">$1</span>',
                                                        		'<a href="$1">$1</a>',
                                                        		'<a href="$1">$2</a>',
                                                        		'<img src="$1" alt="Image utilisateur" />',
                                                        		'<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                                                        		'<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                                                        		'<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                                                        		'<span class="$1">$2</span>',
                                                        		'$1>$2'
                                                        	);
                                                        
                                                        
                                                        	$contenu = preg_replace($zcode, $html, $contenu);
                                                        
                                                        	// parsage des smilies
                                                        	$smiliesName = array(':yeyh',':lol',':content',':snif',':colère',':att',':info',':erreur',':question');
                                                        	$smiliesUrl  = array('yehkgouv.png','lolkgouv.png','contentkgouv.png','snifkgouv.png','colèrekgouv.gif','attention.png','info.png','erreur.png','comment.png');
                                                        	$smiliesPath = "images/smiley/";
                                                        
                                                        	for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                                                        		$contenu = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $contenu);
                                                        	}
                                                        
                                                        	// Rtours à la ligne
                                                        	$contenu = preg_replace('`\n`isU', '<br />', $contenu);
                                                        
                                                        //affichage du contenu
                                                        	print($contenu);
                                                        ?>
                                                        
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          12 juin 2009 à 18:00:09

                                                          bonjour,

                                                          Merci pour votre aide, le problème est résolu.

                                                          Le problème venait comme vous l'avez dit de ma page d'affichage.
                                                          J'appelait en include le code de ma page final.Mais j'en avait fait 2 versions et j'avait pas mis à jour la deuxième.
                                                          C'était tout bete.

                                                          Merci encore pour votre aide.
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          bbcode, problème avec la balise <table></table>

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                          • Editeur
                                                          • Markdown