diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index 56ef7a88fd856ed3d3ae8230496e2821a122a75b..0b3346d42f17e4772c08ee7c635c1e51f7dbdfd1 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -93,17 +93,23 @@ function nettoyer_chapo($chapo){ function code_echappement($rempl, $source='') { if (!strlen($rempl)) return ''; - // Convertir en base64 - $base64 = base64_encode($rempl); - // Tester si on echappe en span ou en div $mode = preg_match(',</?('._BALISES_BLOCS.')[>[:space:]],iS', $rempl) ? 'div' : 'span'; $nn = ($mode == 'div') ? "\n\n" : ''; + $return = ''; + + // Decouper en morceaux, base64 a des probleme selon la taille de la pile + $arempl = str_split($rempl, 30000); + foreach($arempl as $rempl) { + // Convertir en base64 + $base64 = base64_encode($rempl); + $return .= + inserer_attribut("<$mode class=\"base64$source\">", 'title', $base64) + ."</$mode>"; + } - return - inserer_attribut("<$mode class=\"base64$source\">", 'title', $base64) - ."</$mode>$nn"; + return $return . $nn; } // Echapper les <html>...</ html>