Define('SYS_DEBUG',false);
IF(SYS_DEBUG) {
ini_set('display_errors','on');
Error_reporting(E_ALL);//オンラインになった後にこの設定を使用します。 Error_reporting(E_ERROR | E_WARNING | E_PARSE) );
}Else{
ini_set('display_errors','off');
//エラーをキャッチしました
Register_shutdown_function('Fun::Error'); /**
一般的なエラー処理
パラメータ:
出力する内容、プログラムの実行を終了するかどうか
指示:
値が渡された場合、この関数を使用してカスタマイズされたエラー内容を出力できます
さらに、 Register_shutdown_function を使用して、エラー内容を自動的にキャプチャし、キャプチャしたエラー内容をメールに送信します。 Register_shutdown_function の仕組みは、プログラムが完了したとき、または途中でエラーが発生したときに関数が呼び出されるというものです。エラー内容が見つからない場合は、最後のエラー内容が取得されます。
Return:
内容は画面または電子メールに直接出力されます。
Usage:
Fun::Error('Error content'); ::Error('エラー内容',False);*/
パブリック静的関数エラー($M='',$E=True){
$ErrTpl='
{$M} |
table>';
$M=Trim($M);
IF($M!='') {//手動呼び出し
$M=' 注: ;
Echo Strtr($ErrTpl,Array('{$M}'=>$M));unSet($ErrTpl);
IF($E===True) {Die();}
}Else{// プログラムが実行され、エラーが自動的にキャプチャされたら、
$M=error_get_last() を呼び出します。 // 最後のエラーを取得します
IF(!Is_array($M) Or Count($M)IF(!File_Exists($M['file'])) {Unset($M);Return ;}
//キー エラー コードの 5 行を取得します。コンテンツを取得できません。エラー ファイルが存在しないことを示します
$E=Array_slice(File($M['file']),($M['line']-4),5); ($E)) {未設定 ($M,$E);Return ;}
$E['M']='';
For($i=0;$i$ E[$i]=isSet ($E[$i]) ? $E[$i] : '';
$E['M'].=' ; $i==3) ? ''.(($M['line']-3)+($i+1)).' : (($M['line ']-3)+( $i+1));
$E['M'].=': '.Htmlspecialchars($E[$i],ENT_QUOTES,'UTF-8').'
}
$ E=&$E['M'];
$M='
エラーの説明:< /b>
'.$M['file'].' '.$M['line']< /b> タイプ '.$M['type'].' '.$M['message'].'
br> キーコード:
'.$E.'
'.self::now('Y-m-d H:i:s',time()).'
';
$M=Strtr($ErrTpl,Array('{$M}'=>$M));unSet($ErrTpl); ', 'config');
IF(!self::Mail2($G['Spe'],'警告: '.$G['Tit'].' PHP プログラム エラーが発生しました!',$M) SYS_DEBUG== =True){
throw new Exception('警告: '.$G['Tit'].' PHP プログラム エラーが発生しました!
'.$M); SYS_DEBUG) { エコー $M;}
unSet($E,$M,$G);
Die()
}
}
/**
メールを送信する
パラメータ:
受信者、メールのタイトル (改行なし)、メールの内容 (行は n で区切る必要があり、各行は 70 文字を超えることはできません)
説明:
PHP 組み込み関数を呼び出すMail はメールを送信します
戻り値:
ブール値を返します
使用法:
$IsSend=Fun::Mail2($email,$tit,$msg);*/
パブリック静的関数 Mail2($to,$tit) ,$msg ) {
IF(Filter_var($to,FILTER_VALIDATE_EMAIL)==''){
新しい例外をスロー('メールアドレスが間違っています!')
}
$tit='=?UTF-8?B? '.Base64_Encode ($tit).'?=';
$msg = str_replace("n.","n..",$msg); //Windows は行頭にピリオドを見つけると、この質問を回避してください 1 つのピリオドを 2 つのピリオドに置き換えてください
Return Mail($to,$tit,$msg,'From:'.seft::getG('config/SYS/Mal')."n".'コンテンツタイプ:text/html;charset=utf-8');
http://www.bkjia.com/PHPjc/326333.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/326333.html
技術記事
PHP を開発している友人は、プログラムに例外やエラーが発生すると、ユーザーは恐怖を感じ、さらには職を失うことを知っています。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31