学习动态网页技术PHP中错误处理的一些方法
php
动态
基本
处理
学习
开
技术
方法
是
玩
的
网页
错误
已经玩php一段时间了,基本是from 0开始的,经常出现的问题也很多,慢慢的可以熟练的查询文档了,而且,经验也不是很多。
先look here。:
error_reporting(1048);//1,2,4,7,...,1048
ob_start();
session_start();
date_default_timezone_set(Asia/Shanghai);
php的递给调用会吃掉很多的内存。
一般的,不要太多的使用define。
在类的构造和属性器方面,5已经做了很多的工作,克服的bug就不说了,__系列的函数都有一些看点,也是支持static的。
按照我现在的写过的程序,很少用到框架页面的,我感觉在php里面速度不在是一个问题。
注意类的调用次序,特别是已经extends的,准确的释放掉内存。
@mysql_fetch_array($result,MYSQL_ASSOC);
这个注意使用乱用,MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH是一个enum吧。默认的是MYSQL_BOTH.mysql的语句,如果执行in 的话不再支持limit。so...很麻烦。
支持distinct,group之,程序循环执行,md。
if(get_magic_quotes_gpc()){
$_GET= stripslashes_gpc($_GET);
$_POST= stripslashes_gpc($_POST);
$_COOKIE= stripslashes_gpc($_COOKIE);
}
set_magic_quotes_runtime(0);#magic_quotes_runtime
function stripslashes_gpc($array) {
while (list($key,$value) = each($array)) {
if (is_string($value)) {
$array[$key] = addslashes(stripslashes($value));
} else if (is_array($value)) {
$array[$key] = stripslashes_gpc($value);
}
}
return $array;
}
/**
* 处理程序中出现的错误
* @Date:2006-10-9-10:51
* @param (类型) (参数名) (描述)
*/
function Error_Handler($errno,$errstr,$errorfile,$errline,$errtext){
echo(系统发生错误:.$errstr);
echo(At.$errorfile.的第.$errline.行.);
if($errno==E_USER_ERROR){
echo(致命错误,程序已经中止);
}
}
$_GET= stripslashes_gpc($_GET);
$_POST= stripslashes_gpc($_POST);
$_COOKIE= stripslashes_gpc($_COOKIE);
}
set_magic_quotes_runtime(0);#magic_quotes_runtime
function stripslashes_gpc($array) {
while (list($key,$value) = each($array)) {
if (is_string($value)) {
$array[$key] = addslashes(stripslashes($value));
} else if (is_array($value)) {
$array[$key] = stripslashes_gpc($value);
}
}
return $array;
}
/**
* 处理程序中出现的错误
* @Date:2006-10-9-10:51
* @param (类型) (参数名) (描述)
*/
function Error_Handler($errno,$errstr,$errorfile,$errline,$errtext){
echo(系统发生错误:.$errstr);
echo(At.$errorfile.的第.$errline.行.);
if($errno==E_USER_ERROR){
echo(致命错误,程序已经中止);
}
}
在使用的时候:
set_error_handler(Error_Handler);
trigger_error(call trigger_error,E_USER_ERROR);
trigger_error(call trigger_error,E_USER_ERROR);
这是使用函数获取的,当然您的错误报告级别应该高点:
error_reporting(1048);
为了更加oo,先看看一个描述类的自写的函数:
$classname=Exception;
/**
* (功能描述)
* @Date:
* @param (类型) (参数名) (描述)
*/
function ClassDetail($classname){
if(!class_exists($classname)){
echo($classname.类不存在);
}else{
print_r("以下描述类".$classname);
print_r("所有的方法");
print_r("
所有的属性
");
}
}
ClassDetail($classname);
/**
* (功能描述)
* @Date:
* @param (类型) (参数名) (描述)
*/
function ClassDetail($classname){
if(!class_exists($classname)){
echo($classname.类不存在);
}else{
print_r("以下描述类".$classname);
print_r("所有的方法
");<br> print_r(get_class_methods($classname));<br> print_r("
登录后复制
print_r("
所有的属性
");<br> print_r(get_class_vars($classname));<br> print_r("
登录后复制
");
}
}
ClassDetail($classname);
发现exception类的所有get方法是:
[0] => __construct
[1] => getMessage
[2] => getCode
[3] => getFile
[4] => getLine
[5] => getTrace
[6] => getTraceAsString
[7] => __toString
慢慢的优化个性点,也可以的。
ok,来看比较oo的处理方式:
class ErrorHandlers extends Exception{
private $_context = null;
function __construct($level, $string, $file, $line, $context=null){
parent::__construct($string,$level);
$this->file = $file;
$this->line = $line;
$this->_level = $level;
$this->_context = $context;
}
function __destruct(){
// parent::__destruct();
}
function Message(){
$errors = array(
E_ERROR => error,
E_WARNING => warning,
E_PARSE => parsing error,
E_NOTICE => notice,
E_CORE_ERROR => core error,
E_CORE_WARNING => core warning,
E_COMPILE_ERROR => compile error,
E_COMPILE_WARNING => compile warning,
 
private $_context = null;
function __construct($level, $string, $file, $line, $context=null){
parent::__construct($string,$level);
$this->file = $file;
$this->line = $line;
$this->_level = $level;
$this->_context = $context;
}
function __destruct(){
// parent::__destruct();
}
function Message(){
$errors = array(
E_ERROR => error,
E_WARNING => warning,
E_PARSE => parsing error,
E_NOTICE => notice,
E_CORE_ERROR => core error,
E_CORE_WARNING => core warning,
E_COMPILE_ERROR => compile error,
E_COMPILE_WARNING => compile warning,
 
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
1 周前
By DDD
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
在哪里可以找到原子中的起重机控制钥匙卡
1 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

登录 CakePHP 是一项非常简单的任务。您只需使用一项功能即可。您可以记录任何后台进程(如 cronjob)的错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。提供了 log() 函数
