你如何格式化PHP错误消息?他们不尊重CSS
每当
PHP输出错误消息时,它会忽略css和设计精美的页面,方法是输出页面顶部的消息,删除任何阻碍它的方式.
例如 some code} else { echo "error,please do something!"; 我如何得到(或很好地问)在我的CSS中已经存在的div中输出文本,以便它遵守该div附带的格式和对齐规则. 解决方法
编辑
实际上,我刚刚意识到你所说的“错误”涉及回声/打印输出.这是问题所在. 您将字符串错误DIRECTLY打印(回显)到输出缓冲区(当您运行完所有代码时将HTML发送到浏览器). echo()和print()直接发送你正在回显/打印的内容,除非它在output_buffer块中(我不会把你的细节混淆). 因此,您正在管理常规的html /文本输出,以便不将页面内容打印到输出缓冲区,但在这种情况下,您使用的是echo,它将字符串数据直接发送到缓冲区AT THAT时刻. 例如: 你的问题在一个简单的例子中 <?php $mystr = "<html>"; $mystr .= "<body><h1>Hello World</h1></body></html>"; echo "<head></head>"; echo $mystr; ?> 哪个会给我输出到浏览器: <head></head><html><body><h1>Hello World</h1></body></html> 我存储字符串数据,但在回显其他html数据之前回显HEAD块. 我需要做的是: <?php $mystr = "<html>"; $mystr .= "<head></head>"; $mystr .= "<body><h1>Hello World</h1></body></html>"; echo $mystr; ?> 哪个会给我输出到浏览器: <html><head></head><body><h1>Hello World</h1></body></html> 我存储字符串输出(在这种情况下你的错误),直到我需要稍后输出.这是您需要知道的,并在您的代码中完成. 我会研究error_reporting(0)/ display_errors,error_get_last和set_error_handler. http://www.php.net/manual/en/function.error-reporting.php http://www.php.net/manual/en/errorfunc.configuration.php#ini.display-errors http://php.net/manual/en/function.error-get-last.php http://www.php.net/manual/en/function.set-error-handler.php 这样你就可以立即停止将所有错误发送到输出缓冲区(这就是它位于页面顶部的原因),然后捕获,存储和显示错误. error_reporting(0); set_error_handler('phpLogError'); function phpLogError() { $error = error_get_last(); if ($error['type'] == 1) { //do your stuff } } function phpGetLoggedErrors() { // return your prettified html errors } 或者,换句话说…… php_error_handle.php <?php $GLOBAL['_logged_php_errors'] = array(); error_reporting(0); set_error_handler('phpLogError'); function phpLogError() { global $_logged_php_errors; $error = error_get_last(); if ($error['type'] == 1) { $_logged_php_errors[] = "<span>$error</span>"; } } function phpGetLoggedErrors() { global $_logged_php_errors; return "<ol><li>".implode('</li><li>',$_logged_php_errors)."</li></ol>"; } ?> other.php <?php require_once 'php_error_handle.php'; // other stuff,pages included/required,etc... 只需确保在第一行代码中发生require_once. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |