にっき
2007/02/23 20:39:57
きつねたんでPHPでばぐ
PHP のでばっぐ情報を FireBug に表示できる方法っていうにうすが流れてて試してみたけど・・・
中見てみたらえら〜を捕まえて Console に投げてるだけ・・・にう?
それなら
こんなかんじにしとくと FireBug っていうか Console が未定義のときは ul 表示できて便利かにう? 〆(・x・。【みかん
なんだかふぁいるぱすに入ってる『\』と『%』は2つに増えてたからかっとして・・・
それでも FireBug のこんそ〜るで見ると『%』はおかしくなっちゃうけどなにか対処法あるのかなぁ?(つx;【みかん
あっ☆
てすと中でも valid がいいってひとは
をかっとして,その代わりに body たぐを閉じる前に
でも入れといてくださいなです☆ヾ(・x・。【みかん
中見てみたらえら〜を捕まえて Console に投げてるだけ・・・にう?
それなら
<?php
error_reporting(E_ALL);
set_error_handler(array('MyDebugger','errorHandler'));
register_shutdown_function(array('MyDebugger','renderMessage'));
define('MYDEBUGUTILS_ERR_ERROR',1);
define('MYDEBUGUTILS_ERR_WARN' ,2);
define('MYDEBUGUTILS_ERR_INFO' ,3);
class MyDebugger
{
/**
* @var string[]
* @private
**/
var $_messages = array();
/**
* errorHandler
*
* @param int $errNo
* @param string $errStr
* @param string $errFile
* @param int $errLine
* @param object $errContext
*
* @static
**/
function errorHandler($errNo,$errStr,$errFile,$errLine,$errContext)
{
$errMode = null;
$errLv = 0;
switch($errNo)
{
case E_WARNING:
$errMode = 'PHP Warning';
$errLv = MYDEBUGUTILS_ERR_WARN;
break;
case E_NOTICE:
$errMode = 'PHP Notice';
$errLv = MYDEBUGUTILS_ERR_INFO;
break;
case E_USER_ERROR:
$errMode = 'User Fatal';
$errLv = MYDEBUGUTILS_ERR_ERROR;
break;
case E_USER_WARNING:
$errMode = 'User Warning';
$errLv = MYDEBUGUTILS_ERR_WARN;
break;
case E_USER_NOTICE:
$errMode = 'User Notice';
$errLv = MYDEBUGUTILS_ERR_INFO;
break;
case E_STRICT:
$errMode = 'PHP Strict';
$errLv = MYDEBUGUTILS_ERR_INFO;
break;
case E_RECOVERABLE_ERROR:
$errMode = 'PHP Error';
$errLv = MYDEBUGUTILS_ERR_ERROR;
break;
default:
$errMode = 'Unknown';
$errLv = MYDEBUGUTILS_ERR_INFO;
break;
}
$obj =& MyDebugger::getInstance();
$obj->appendMessage($errMode,$errLv,$errStr,$errFile,$errLine);
}
/**
* getInstance
*
* @param void
*
* @return &myDebugger
*
* @static
**/
function &getInstance()
{
static $obj;
if(!is_object($obj))
{
$obj = new MyDebugger();
}
return $obj;
}
/**
* appendMessage
*
* @param string $mode
* @param int $lv
* @param string $mes
* @param string $file
* @param int $line
**/
function appendMessage($mode,$lv = MYDEBUGUTILS_ERR_INFO,$mes = '',$file = '',$line = 0)
{
$log = 'console.';
switch($lv)
{
case MYDEBUGUTILS_ERR_ERROR:
$log .= "error";
break;
case MYDEBUGUTILS_ERR_WARN:
$log .= "warn";
break;
case MYDEBUGUTILS_ERR_INFO:
default:
$log .= "info";
break;
}
$log .= sprintf('("[%s] %s\nin %s L %d");',$mode,$mes,str_replace(array('\\','%%'),array('\\\\','%'),$file),$line);
$this->_messages[] = $log;
}
/**
* getMessages
*
* @param void
*
* @return string
**/
function getMessages()
{
return '<script type="text/javascript"><!--
if(typeof console == "undefined")
{
document.write("<ul id=\"debugMessage\">");
console =
{
"info" : function(str){document.write("<li class=\"info\">" + str + "</li>");},
"warn" : function(str){document.write("<li class=\"warn\">" + str + "</li>");},
"error" : function(str){document.write("<li class=\"error\">" + str + "</li>");},
"fallback" : true
};
}
' . implode("\n",$this->_messages) . '
if(console.fallback)
{
document.write("</ul>");
}
--></script>';
}
/**
* renderMessage
*
* @param void
*
* @return void
*
* @static
**/
function renderMessage()
{
$obj =& MyDebugger::getInstance();
echo $obj->getMessages();
}
}
?>
こんなかんじにしとくと FireBug っていうか Console が未定義のときは ul 表示できて便利かにう? 〆(・x・。【みかん
なんだかふぁいるぱすに入ってる『\』と『%』は2つに増えてたからかっとして・・・
それでも FireBug のこんそ〜るで見ると『%』はおかしくなっちゃうけどなにか対処法あるのかなぁ?(つx;【みかん
あっ☆
てすと中でも valid がいいってひとは
register_shutdown_function(array('MyDebugger','renderMessage'));
をかっとして,その代わりに body たぐを閉じる前に
MyDebugger::renderMessage();
でも入れといてくださいなです☆ヾ(・x・。【みかん
こめんと
投稿された内容の著作権はこめんとの投稿者に帰属するっぽいです☆また,現在 IE6 以下で Sleipnir,Lunascape,Donut じゃないゆ〜ざえ〜じぇんとからの描き込みを制限してますです☆
該当しちゃうかたはてきとうにゆ〜ざえ〜じぇんとを偽装しちゃってくださいです(´ω`;【みかん