Annuler le nl2br dans un array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Annuler le nl2br dans un array

Re: Annuler le nl2br dans un array

par valentin45000 » 10 mai 2010, 19:56

Non effectivement, se n'est pas indispensable mais mieux.
Ceci dit vivement que IE marche aussi bien que FF (désolé pour les fan d'IE :lol: )

Re: Annuler le nl2br dans un array

par AB » 10 mai 2010, 19:32

Oui mais il est peu propable que cela fonctionne avec d'anciennes versions d'IE (IE6 notamment). Cela dit si ça fonctionne à partir d'IE7 (à vérifier) tu peux peut-être faire l'impasse, après tout cette fonctionnalité n'est peut-être pas indispensable au bon fonctionnement de ton site...

Re: Annuler le nl2br dans un array

par valentin45000 » 10 mai 2010, 19:27

Super !
J'en revient que la solution était si simple (tu me diras c'est toujours le plus simple que l'ont cherche jamais).

Re: Annuler le nl2br dans un array

par stealth35 » 10 mai 2010, 19:01

t'enlève le nl2br
et dans ton css tu rajoutes un white-space:pre; a ton body

Re: Annuler le nl2br dans un array

par valentin45000 » 10 mai 2010, 18:57

"blof" ça ne marche pas.
Mais si vous avez une idée pour intégré Geshi je veut bien ^^

Re: Annuler le nl2br dans un array

par valentin45000 » 10 mai 2010, 10:41

En trouver un autre je veut bien, mais encore faut-il qu'il s'adapte à se code php, donc il doit pouvoir s'inclure en html comme Syntaxhighlighter, par exemple Geshi s'inclue avec du php.
Et à part ses deux là je voit pas.

Re: Annuler le nl2br dans un array

par AB » 10 mai 2010, 00:11

Et puis comme déjà dit, il est obsolète ton code Syntaxhighlighter. On emploie plus fonte color depuis longtemps, et par exemple dans cette page il y a bien de la coloration syntaxique mais tu ne trouveras pas de balise <pre dans le code source.
Donc plutôt que de l'adapter aux nouvelles normes (ce qui doit être faisable) je me demande si tu ne ferais pas mieux d'en trouver un autre... ou chercher s'il n'y a pas une version plus récente.

Re: Annuler le nl2br dans un array

par blof » 09 mai 2010, 23:22

Bonsoir,

en espérant qu'il y ait une autre solution :? :
//      replacer "return nl2br($content);" par :

        $content = nl2br($content);
        $content = preg_replace('#(<pre name=.*</pre>)#se', "str_replace('<br />', '', '$1')", $content);
        return $content;
Sinon, je ne connais pas ce script "Syntaxhighlighter" ( j'imagine qu'il fait de la coloration syntaxique )
Mais es-tu sûr qu'il ne fonctionne pas si tu remplaces la balise "pre" par la balise "div" ?

Juste pour voir, si tu remplaces '<pre name="code" class="php">$1</pre>', par '<div name="code" class="php">$1</div>', ça donne quoi ?

Re: Annuler le nl2br dans un array

par Valentin45000 » 09 mai 2010, 21:03

Non je ne peut absolument pas les remplacer, elle font référence au script Syntaxhighlighter.

Re: Annuler le nl2br dans un array

par AB » 09 mai 2010, 20:03

Bon disons les choses autrement :
A quoi servent les balises <pre> ? Ne pourrais tu pas les remplacer ?

Re: Annuler le nl2br dans un array

par Valentin45000 » 09 mai 2010, 19:21

Moi non plus :lol:
Le plus simple serait que tu formate ces lignes en questions pour qu'elles s'affichent correctement avec nl2br.
Justement je ne veut pas que le nl2br prenne effet sur elle.

Re: Annuler le nl2br dans un array

par AB » 09 mai 2010, 19:16

Le plus simple serait que tu formate ces lignes en questions pour qu'elles s'affichent correctement avec nl2br.

De toutes façons tu utilises un code obsolète ex : font color= ... profites en pour faire le ménage.
Et puis je ne vois pas à quoi peut servir $content = $content;

Annuler le nl2br dans un array

par Valentin45000 » 09 mai 2010, 19:00

Bonjour,
Bon je donne tout de suite le code :
<?php function parseZCode($content) {
	// Parsage des balises
	$zcode = array(  
		'`<couleur_rouge>(.+)</couleur_rouge>`isU',
		'`<couleur_bleu>(.+)</couleur_bleu>`isU',
		'`<couleur_vert>(.+)</couleur_vert>`isU',
		'`<couleur_turquoise>(.+)</couleur_turquoise>`isU',
		'`<code_php>(.+)</code_php>`isU', 
		'`<code_html>(.+)</code_html>`isU', 
		'`<code_css>(.+)</code_css>`isU', 
		'`<code_js>(.+)</code_js>`isU', 
		'`<italique>(.+)</italique>`isU',  
		'`<gras>(.+)</gras>`isU',
		'`<barre>(.+)</barre>`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(  
		'<font color="#BF0B0B">$1</font>', 
		'<font color="#0B3BBF">$1</font>', 
		'<font color="#0A7D12">$1</font>', 
		'<font color="#269CA9">$1</font>',  
		'<pre name="code" class="php">$1</pre>', 
		'<pre name="code" class="html">$1</pre>', 
		'<pre name="code" class="css">$1</pre>', 
		'<pre name="code" class="js">$1</pre>',  
		'<em>$1</em>',  
		'<strong>$1</strong>',
		'<del>$1</del>', 
		'<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>'
	); 
	$content = htmlspecialchars($content);
	$content = preg_replace($zcode, $html, $content);
	
	// parsage des smilies
	$smiliesName = array(' :bleuh: ', ' :clin: ', ' :colere: ', ' :content: ', ' :euh: ', ' :g_s: ', ' :hein: ', ' :lol: ', ' :oh: ', ' :sourire: ', ' :triste: ', ' :zut: ');
	$smiliesUrl  = array( 'bleuh.jpg', 'clin.jpg', 'colere.jpg', 'content.jpg', 'euh.gif', 'g_s.jpg', 'hein.jpg', 'lol.gif', 'oh.jpg', 'sourire.jpg', 'triste.jpg', 'zut.jpg',);
	$smiliesPath = "http://pause-montage.host56.com/smilies/";
	
	for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
		$content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
	}
	
	// Rtours à la ligne
	$content = $content; 
	
	return nl2br($content);

}
echo parseZCode($donnees['mess']); 
}
else{
echo "<b><font color=\"red\">Erreur 404</font></b>";
}?>
A la fin on voit le nl2br.
Problème je voudrais pas qu'il touche ses lignes :
'<pre name="code" class="php">$1</pre>', 
'<pre name="code" class="html">$1</pre>', 
'<pre name="code" class="css">$1</pre>', 
'<pre name="code" class="js">$1</pre>',  
Comment je peut faire ?
Merci d'avance.
Cordialement.