Skip to content
Extraits de code Groupes Projets
Valider c13d2e4f rédigé par marcimat's avatar marcimat
Parcourir les fichiers

Simplifier evaluer_page() en enlevant du code pour PHP < 7.1

Capturer aussi les \ParseError dans ce cas.

Attention, la variable $res est globale est utilisée ensuite par l’appeleur.
parent e3525a7e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -26,8 +26,10 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* dans une fonction).
*
* @param array $page
* @return bool
* @return void
*/
/** @var bool Évaluation réussie ? */
$res = true;
// Cas d'une page contenant du PHP :
......@@ -49,30 +51,8 @@ if (empty($page['process_ins']) or $page['process_ins'] != 'html') {
try {
$res = eval('?' . '>' . $page['texte']);
// error catching 5.2<=PHP<7
if (
$res === false
and function_exists('error_get_last')
and ($erreur = error_get_last())
) {
$code = $page['texte'];
$GLOBALS['numero_ligne_php'] = 1;
if (!function_exists('numerote_ligne_php')) {
function numerote_ligne_php($match) {
$GLOBALS['numero_ligne_php']++;
return "\n/*" . str_pad($GLOBALS['numero_ligne_php'], 3, '0', STR_PAD_LEFT) . '*/';
}
}
$code = '/*001*/' . preg_replace_callback(",\n,", 'numerote_ligne_php', $code);
$code = trim(highlight_string($code, true));
erreur_squelette('L' . $erreur['line'] . ': ' . $erreur['message'] . '<br />' . $code, [$page['source'],'',$erreur['file'],'',$GLOBALS['spip_lang']]);
$page['texte'] = '<!-- Erreur -->';
}
else {
$page['texte'] = ob_get_contents();
}
}
catch (\Exception | \Error $e) {
$page['texte'] = ob_get_contents();
} catch (\Throwable $e) {
$code = $page['texte'];
$GLOBALS['numero_ligne_php'] = 1;
if (!function_exists('numerote_ligne_php')) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter