phpbar.de logo

Mailinglisten-Archive

[php] Morgen!

[php] Morgen!

Johann-Peter Hartmann php_(at)_phpcenter.de
Wed, 31 Jul 2002 16:31:17 +0200


Hi Ihr, hi Alexander, hi Max,

Alexander Weber schrieb:
> Dann bleibt wohl nichts anderes übrig, als ein bißchen außen herum zu
> bauen, wenn es auch parse errors unterstützen soll. Dazu
> braucht man ein
> Script, daß die Ausgabe des anderen (das es als Parameter erhält) in
> eine Variable speichert und anschließend den String von Hand
> durchsucht.

	Jepp, man könnte das evtl.
	mit assert() machen.

	Hier mal eine einfache Version von Max Idee,
	bei einem Fehler müßte halt noch der
	passenden Content-Type für PHP rausgeschossen
	werden:

8<------ CUT testo.php ------
<?php
error_reporting(E_ALL);
function myhandler($errno, $errstr, $errfile, $errline) {
  printf('<a href="/testo.php?file=%s&line=%s&errstr=%s#line%s">%s: %s
in line %s</a><br />',
	 urlencode($errfile),
	 urlencode($errline),
	 urlencode($errstr),
	 $errno, htmlentities($errstr), $errline, $errline);
  flush();
};

set_error_handler('myhandler');

unset($ary[hallo]);
if ( (isset($HTTP_GET_VARS['file'])) && ($file=$HTTP_GET_VARS['file'])
&& (file_exists($file))) {
  ob_start();
  show_source($file);
    $content= ob_get_contents();
    ob_end_clean();
    $ary=explode('<br />', $content);
    $content='';
    $counter=0;
    foreach($ary as $line) {
      $counter++;
      $content.=sprintf('%s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a
name="line%s">%s<br />',
			((isset($HTTP_GET_VARS['line'])) &&
($HTTP_GET_VARS['line']==$counter)) ? '<br /><br /><font
color="red">ERR: '.$HTTP_GET_VARS['errstr'].'</font><br />' : '',
			$counter, $line);
    };
    echo $content;
};
?>
8<---------------------- CUT HERE ---------

	Das sollte natürlich nur in einem Dev-Environment
	stattfinden.


	Liebe Grüße

	Johann


php::bar PHP Wiki   -   Listenarchive