Blogger Information
Blog 20
fans 1
comment 2
visits 16773
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
1写一个自定义异常类来处理上传过程以及各种错误2.写一个与指定数据表绑定的类, 实现基本的模型功能 补1012作业
月迎下弦的博客
Original
774 people have browsed it

1010.jpg

实例

<?php 
namespace _1022;
//Exception 类是可以进行扩展的
//Exception 中只有__construct()和__toString()允许扩展,其它都是最终方法final,不允许扩展
//下面我们来创建一个自己的异常类,专用于处理算数运算中可能出现的错误
//基本要求是:错误代码加粗,提示文本描红,并要求换行显示
//处理运行中的错误
// 异常进行错误的统一处理
// 异常类是php中专用于错误 信息的统一处理

use Exception;
//将系统的异常类进行扩展,自定义
class Customize extends Exception
{
    public function __construct($message = ""/**错误信息*/, $code = 0/**代码*/  )
    {
        parent::__construct($message,$code);
    }   
      
    public function errorInfo()
    {
         // heredoc:用来输出大段的html代码或字符,并且中间允许有变量且会解析
        return <<< "ERROE"
        <h2>
        <img src="uploads/caveat.jpg" alt="" width="1.2%">
        <span style="color:red;"><strong>{$this->getCode()}: </strong></span>
        <span style="color:red;">{$this->getMessage()}</span>
        <img src="uploads/error.png" alt="" width="1.2%" >
        </h2>
        ERROE;
    }
}
try {
    //设置允许上传文件的类型
    $fileType = ['jpg','JPG','jpeg','png','gif'];

//设置允许上传文件的最大长度
$fileSize = 3145728;

//上传到服务器上的制定的目录
$filePath = '/uploads/';

//原始的文件名
$fileName = $_FILES['my_file']['name'];

//上传到服务器上的临时文件名
$tempFile = $_FILES['my_file']['tmp_name'];

// 2.判断文件是否上传成功?
// $_FILES['my_file']['error'],0:表示成功,大于1出错
$uploadError = $_FILES['my_file']['error'];
if ($uploadError > 0) {
    switch ($uploadError) {
        case 1:
        case 2:throw new Customize('上传文档不允许超过5MB', 1001);
        case 3:throw new Customize('上传文件不完整',1002);
        case 4:throw new Customize('没有文件被上传',1003);
        default:throw new Customize('未知错误',1004);

    }
}
//3. 判断文件是否上传正确?
$extension = explode/**将文件切割成两部分*/('.', $fileName)[1];
if (!in_array($extension/**扩展名*/, $fileType/**数组*/)) {
    throw new Customize('不允许上传'.$extension.'文件类型',1005);
}

//4.为了防止同名覆盖,将上传的文件重命名:md5+时间戳
$fileName = date('YmdHis',time()).md5(mt_rand(1,99)).'.'.$extension;

//5.上传文件
if (is_uploaded_file($tempFile)) {
    if (move_uploaded_file($tempFile,__DIR__. $filePath.$fileName)) {
        echo '<script>
            alert("上传成功");location.href = document.referrer;//返回并刷新
            </script>';
    } else {
        throw new Customize('文件无法移动到制定目录,请检查目录权限',1006);
    }
} else {
    throw new Customize('非法操作',1007);
}
exit(); 
} catch (Customize $th) {
    echo $th->errorInfo();
    echo '<br>';
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


2.写一个与指定数据表绑定的类, 实现基本的模型功能,例如查询, 新增, 更新,删除等操作

查询

指定数据表绑定的类_01.jpg

增加和修改不会写




Correction status:qualified

Teacher's comments:使用异常来代替传统的错误处理, 是目前最常用的方式,一定要明白原理,并尽可能使用它
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments