Ok, je ne peux pas venir à bout de ce ob_start et le code ob_end_clean ...problème ob_start avec le code PHP
Fondamentalement, je suis en train de sortie du code PHP dans une section de page.
Voici mon code source:
$content = trim(html_entity_decode($context['page_data']['body'], ENT_QUOTES, $context['character_set']));
$content = trim($content, '<?php');
$content = trim($content, '?>');
function dream_error_handler($output)
{
$error = error_get_last();
$output = "";
if (!empty($error))
foreach ($error as $info => $string)
if ($info == 'message')
$output .= $string;
return $output;
}
ob_start('dream_error_handler');
eval($content);
$code = ob_get_contents();
ob_end_clean();
$context['page_data']['body'] = $code;
Maintenant, dans la fonction de modèle, j'utilise ceci:
global $context;
echo '
<div class="cat_bar">
<h3 class="catbg">
', $context['page_data']['title'], '
</h3>
</div>
<span class="upperframe"><span></span></span>
<div class="roundframe">
', $context['page_data']['body'], '
</div>
<span class="lowerframe"><span><!-- // --></span></span>
';
Alors, pourquoi suis-je reçois ce message d'erreur?
Erreur HTTP 500 (serveur interne d'erreur): Une situation inattendue se tandis que le serveur était essayant de répondre à la demande.
Qu'est-ce que je fais mal ici? Le $ context ['page_data'] ['body'] a un code PHP valide, un simple echo 'Hello World';
mais il me donne cette 500 erreur interne du serveur. Pourquoi?
Vous devez utiliser '.' au lieu de', 'dans le modèle pour concaténer les chaînes. Jetez aussi un coup d'œil au journal des erreurs d'Apache. – Boldewyn
@Boldewyn la construction ['echo()'] (http://php.net/manual/fr/function.echo.php) accepte plusieurs paramètres, bien que les docs indiquent que les parenthèses doivent être utilisées dans ce cas. – jensgram