Bonjour à toutes et à tous !

Pour un projet personnel, je suis amené à colorer du code entre crochet en Ruby. Pour ça, j'ai utilisé l'excellente bibliothèque GeiShi, mais je suis confronté à un problème.

En effet, dès que le texte à colorer dépasse 45 233 caractères, la REGEX ne s'exécute pas et le texte ne s'affiche même pas !

Savez-vous d'où peut venir ce problème ?

Voici le code pour la coloration en Ruby:

Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
//Colore le code écrit en Ruby !
function ruby($texte)
{	
	$texte = preg_replace_callback('#\[ruby\](.+)?()\[/ruby\]#isU', 'parse_ruby', $texte);
	return $texte;
}
 
function parse_ruby($capt)
{
	$code = trim(htmlspecialchars_decode($capt[1]));
	$code = new GeSHi($code, 'ruby');
	$code = $code->parse_code(FALSE);
 
	return '<div><div class="tout_selectionner"><a onclick="selectCode(this); return FALSE;" href="#">Tout sélectionner</a></div>' . str_replace("\n", '<br />', $code) . '</div>'; 
}
?>

Merci d'avance !