批改狀態(tài):合格
老師批語:案例不錯, 結(jié)合之前所學(xué)
知識點:
count() 統(tǒng)計數(shù)組總數(shù)量;
in_array() 搜索數(shù)組中是否存在指定的值;
array_shift() 刪除數(shù)組中的第一個元素(red),并返回被刪除元素的值;
is_numeric() 判斷是否是數(shù)值類型;
<?php //自定義異常類 class CalException extends Exception { public function __construct($message = "", $code = 0) { parent::__construct($message, $code ); } public function errorInfo() { return <<<ERROR <h2> <strong>{$this->getCode()}</strong> <sapn style="color: red">{$this->getMessage()}</span> </h2> ERROR; } }
點擊 "運行實例" 按鈕查看在線實例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上傳文件</title> </head> <body> <form action="demo6.php" method="POST" enctype="multipart/form-data"> //限制上傳文件大小 <input type="hidden" name="MAX_FILE_SIZE" value="3145728"> <input type="file" name="photo" > <button>上傳</button> </form> </body> </html>
點擊 "運行實例" 按鈕查看在線實例
<?php namespace demo6; use CalException; require 'CalException.php'; try { //允許上傳文件的類型 $fileType = ['jpg','jpeg', 'png', 'gif']; //上傳文件的大小 $fileSize = 3145728; //上傳文件的路徑 $filePath = '/images/'; //原始文件名稱 $fileName = $_FILES['photo']['name']; //臨時文件名稱 $tmpFile = $_FILES['photo']['tmp_name']; //判斷是否上傳成功 $uploadError = $_FILES['photo']['error']; if ($uploadError > 0) { switch ($uploadError) { case 1: case 2: throw new CalException('上傳文件不允許超過3M', 101); case 3: throw new CalException('上傳文件不完整', 102); case 4: throw new CalException('沒有文件被上傳', 103); default: throw new CalException('未知錯誤', 104); } } //判斷擴展名是否正確? $extension = explode('.', $fileName)[1]; if (!in_array($extension, $fileType)) { throw new CalException('不允許上傳'.$extension.'文件類型',201); } //防止同名文件相互覆蓋 $fileName = date('YmdHis',time()).md5(mt_rand(1,99)).'.'.$extension; // 上傳文件 //檢測是否通過POST上傳的 if (is_uploaded_file($tmpFile)){ if(move_uploaded_file($tmpFile,__DIR__.$filePath.$fileName)){ echo '<script>alert("上傳成功");history.back();</script>'; }else{ throw new CalException('文件無法移動到指定目錄',301); } }else{ throw new CalException('非法操作',302); } }catch(CalException $e){ echo $e->errorInfo(); }
點擊 "運行實例" 按鈕查看在線實例
<?php namespace _0808; use PDO; class Movies { private $mov_id; private $name; private $image; private $detail; private $cate_id; //屬性重載 public function __get($name) { return $this->$name; } public function __set($name, $value) { return $this->$name = $value; } //構(gòu)造方法 public function __construct() { switch ($this->cate_id) { case 1: $this->cate_id = '國產(chǎn)好劇'; break; case 2: $this->cate_id = '歐美猛片'; break; case 3: $this->cate_id = '日韓新片'; break; } } } $pdo = new PDO('mysql:host=127.0.0.1;dbname=php','root','root'); $stmt = $pdo->prepare('SELECT * FROM `movies`'); //為語句設(shè)置默認的獲取模式 類名模式 $stmt->setFetchMode(PDO::FETCH_CLASS,Movies::class); $stmt->execute(); //var_dump($stmt->fetch()); //循環(huán) while($movies = $stmt->fetch()){ echo "<li>{$movies->mov_id}:{$movies->name}--{$movies->image}--{$movies->cate_id}</li>"; }
點擊 "運行實例" 按鈕查看在線實例
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號