ecross
Gebruiker
- Lid geworden
- 4 mrt 2009
- Berichten
- 638
hallo allemaal,
ik heb een stuk php dat ik op mijn pagina wil tonen dus ik heb dit gedaan: (sorry als de code te lang is
en nu krijg ik de volgende error
nu weet ik dat de heredoc syntax nogal gevoelig is en vaak verkeerde fout regels aangeeft (toch?) maar ik heb het ook geprobeerd met een "
(zo iets
heeft iemand een idee waaraan dit licht?
ik heb een stuk php dat ik op mijn pagina wil tonen dus ik heb dit gedaan: (sorry als de code te lang is

PHP:
<?php
$code = <<<STRING
// instellingen verander deze
$debug = false;
$bug_email = 'ecross@live.nl';
// onherstelbare fouten opvangen
global $websitePrinted;
// de functie shutDown wordt uigevoerd wanner php stopt met parsen
register_shutdown_function('shutDown');
// de website is nog niet geprint
$websitePrinted = false;
// buffer start
ob_start();
// pagina includen welke een fatale error veroorzaakt verander hier de pagina
include('fatal_error.php');
// buffer legen
ob_end_flush();
// website is bij deze geprint
$websitePrinted = true;
/**
* Deze functie wordt aangeroepen zodra php stopt met parsen.
* Na het printen van de pagina wordt de globale variabele
* $websitePrinted op true gezet. Mocht deze false zijn
* dan is er een fatal error opgetreden
*/
function shutDown() {
// variabele $websitePrinted globaal maken
global $websitePrinted;
global $debug;
global $bug_email;
// indien de website niet geprint is, en dus een fatal error heeft veroorzaakt
if (!$websitePrinted) {
// buffer legen om de foutmelding te onderdrukken
@ob_clean();
// laatste foutmelding ophalen
$error = error_get_last();
// error types ingeven
$error_types = array('1'=>'fatal error','2'=>'warning','4'=>'parse error', '8'=>'notice', '16'=>'fatal core error', '32'=>'core warning', '64'=>'compile fatal error', '128'=>'compile warning', '256'=>'user triggerd fatal error','512'=>'user triggerd warning');
// check welk error type het is
if(array_key_exists($error['type'], $error_types)){$error_type=$error_types[$error['type']];}
else{$error_type=$error['type'];}
// error opmaken
$error_markup='<font style="color:red"> ERROR <b>TYPE</b>: '.$error_type.
' <b>MESSAGE</b>: '.$error['message'].' <b>LINE</b>: '.$error['line'].
' <b>FILE</b>: '.$error['file'].
'</font>';
// als in debug mode toon error
if ($debug == true){echo $error_markup;}
else { //anders een mailtje sturen en standaard foutmelding tonen
$headers = 'From: '.$_SERVER['HTTP_HOST'] . "\r\n";
mail($bug_email, 'fatal error ontstaan', 'laatste foutmelding : '.print_r($error, true), $headers);
echo 'sorry bezoeker, er is iets ernstig mis gegaan';
}
}
}
?>
STRING;
$code = htmlentities($code);
echo '<pre>'.$code.'</pre>';
(dat is op lijn 46 in het script hier boven)Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in ****/fatal_error_handler2.php on line 59
nu weet ik dat de heredoc syntax nogal gevoelig is en vaak verkeerde fout regels aangeeft (toch?) maar ik heb het ook geprobeerd met een "
(zo iets

en dan ligte regel 58 en 59 (46 en 47 in het script hier boven) anders op terwijl dat niet zou moeten. en ik kreeg ook de zelfde fout.$code = "
//code
";
heeft iemand een idee waaraan dit licht?