プロファイラーをポップアップにしてみた。

ちょっと無理やりだけど。

	function _runStr()
	{
  	    $CI =& get_instance();
		$output = '<br clear="all" />';
		$output .= "<div style='background-color:#fff;padding:10px;'>";
		
		$output .= $this->_compile_memory_usage();
		$output .= $this->_compile_benchmarks();	
		$output .= $this->_compile_uri_string();
		$output .= $this->_compile_get();
		$output .= $this->_compile_post();
		$output .= $this->_compile_queries();
		
		$output .= '</div>';
		$output = $CI->db->escape($output);
		return $output;
	}
	/**
	 * Run the Profiler
	 *
	 * @access	private
	 * @return	string
	 */	
	function run()
	{
	    
        $win = <<< EOT
<script language="JavaScript">
var win = window.open('', 'profiler', 'toolbar=no,scrollbars,width=750,height=500');
win.document.writeln('<html>');
win.document.writeln('<head>');
win.document.writeln('<title>Profiler Window</title>');
win.document.writeln('<style type="text/css">');
win.document.writeln('body { font-family: monospace; font-size: 8pt; }');
win.document.writeln('td,th { font-size: 12pt; }');
win.document.writeln('td,th { border-bottom: #999999 solid 1px; }');
win.document.writeln('td,th { border-right: #999999 solid 1px; }');
win.document.writeln('tr { text-align: left; vertical-align: top; }');
win.document.writeln('</style>');
win.document.writeln('</head>');
win.document.writeln('<body>');
win.document.writeln({$this->_runStr()});
win.document.writeln('</body></html>');
</script>
EOT;

		return $win;
	}

急いでやったので、エスケープの部分をdb->escape()にした。
これ、もっと別の方法があるんじゃないだろうか。。

だれかもっと良くしてください。