probleme wordwrap fonctionne pas -> geshi?

Eléphant du PHP | 299 Messages

30 déc. 2009, 23:44

Salut a tous,

j' ai un souci que je croyais reglé. J' avais des problemes de mis en page sur geshi avec les quotes et hors quote, ceci etant reglé grace a DJTEC, je croyais etre tranquille.

J' ai mis un petit bout de php en utilisant "wordwrap" pour couper les mots à 120 caracteres, ca marche bien, mais je n' avais pas prévu que ce ne marcherait pas pour le contenu des "quotes" qui est mis en page par DJTEC.

Hors donc j' ai voulu afficher un doctype, il est tellement long que toute ma page est deformé.

Voici le code corrigé par DJTEC:
 
$tuto_tuto = nl2br(htmlentities(stripslashes($tuto['tuto_tuto'])));


function getGeshi($match) {
        include_once('geshi/geshi.php'); // Inclure la librairie GeSHi

        $geshi = new GeSHi($match[2], $match[1]); // Créer un objet "GeSHi"
       
        $code_geshi = $geshi->parse_code();
       
        $code = '<table width="1000" border="0" cellspacing="0" cellpadding="0"><tr><td height="20" background="images/quoteh.gif">&nbsp;</td></tr><tr><td background="images/quotem.gif"><table width="980" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td>'.$code_geshi.'</td></tr></table></td></tr><tr><td height="20" background="images/quoteb.gif"></td></tr></table>';

        return $code; // Retourne le résultat
}

$text = code(nl2br(stripslashes(wordwrap($tuto['tuto_tuto'], 120, "\n"))));

function ChangeBR($retour) {
        $retour[1] = preg_replace("`\<br((\s*)\/?)\>`ims", '[[br]]', $retour[1]);
       
        return $retour[1];
}

function nl2brCallback($retour) {
        $retour[1] = preg_replace("`\<br((\s*)\/?)\>`ims", '', $retour[1]);
        $retour[1] = preg_replace("`\[\[br\]\]+`ims", "\r", $retour[1]);
       
        return $retour[1];
}

$text = preg_replace_callback("`(\[quote=(asp|php|css|sql|javascript|html4strict)\]+(.*?)\[\/quote\])`isSm", 'ChangeBR', $text);
$text = preg_replace_callback("`(\[quote=(asp|php|css|sql|javascript|html4strict)\]+(.*?)\[\/quote\])`isSm", 'nl2brCallback', $text);
$text = preg_replace_callback('/\[quote=(.*?)\](.*?)\[\/quote\]/is', 'getGeshi', $text);

echo $text;
Pourriez vous m' aider pour faire en sorte que mon wordwrap fonctionne aussi sur les quotes svp?

Merci d' avance pour vos conseils!
Modifié en dernier par graffx le 30 déc. 2009, 23:48, modifié 1 fois.

Eléphant du PHP | 299 Messages

30 déc. 2009, 23:47

Arf, ben non c' est bon :)
        $code_geshi = $geshi->parse_code();
		
		$code_geshi = wordwrap($code_geshi, 120, "\n");
Z' avez remarqué, c' est quand vosu postez votre souci que vous trouvez toujours! :mrgreen: