亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 47
粉絲 3
評(píng)論 0
訪問(wèn)量 49420
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
多文件上傳、MVC依賴注入與服務(wù)容器
原創(chuàng)
1414人瀏覽過(guò)

1. 多文件上傳、封裝成可復(fù)用的函數(shù)或類

  • 運(yùn)行截圖:

  1. // 多文件上傳
  2. function upload_muifile($name = 'files') {
  3. if (isset($_FILES[$name]) && $_FILES[$name]['error']) {
  4. foreach ($_FILES[$name]['error'] as $key => $error) {
  5. if ($error) {
  6. echo "<p style='color:red;'>" . upload_ero($error) . "</p>";
  7. } else {
  8. $filename = strstr($_FILES[$name]['name'][$key],'.',true);
  9. $ext = strstr($_FILES[$name]['name'][$key],'.');
  10. $path = 'uploads/' . md5($filename . 'hello') . $ext;
  11. if (move_uploaded_file($_FILES[$name]['tmp_name'][$key],$path)) {
  12. echo "<p style='color:green;'>{$_FILES[$name]['name'][$key]},上傳成功!</p>";
  13. echo "<img src='{$path}' width='150'/>";
  14. }
  15. }
  16. }
  17. }
  18. }
  19. // 上傳錯(cuò)誤編碼
  20. function upload_ero(int $error = 0) : string
  21. {
  22. switch ($error) {
  23. case 1:
  24. $msg = '超過(guò)單文件大小!';
  25. break;
  26. case 2:
  27. $msg = '超過(guò)前端表單限制';
  28. break;
  29. case 3:
  30. $msg = '上傳文件不完整';
  31. break;
  32. case 4:
  33. $msg = '沒(méi)有文件被上傳';
  34. break;
  35. case 6:
  36. $msg = '找不到臨時(shí)目錄';
  37. break;
  38. case 7:
  39. $msg = '寫入失敗,請(qǐng)檢查目標(biāo)目錄權(quán)限';
  40. break;
  41. default:
  42. exit('未定義錯(cuò)誤!');
  43. }
  44. return $msg;
  45. }
  46. // 調(diào)用上傳文件函數(shù)
  47. upload_muifile($name = 'files');
  48. ?>
  49. <!DOCTYPE html>
  50. <html lang="en">
  51. <head>
  52. <meta charset="UTF-8">
  53. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  54. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  55. <title>多文件上傳</title>
  56. </head>
  57. <body>
  58. <form action="" method="post" enctype="multipart/form-data">
  59. <fieldset>
  60. <legend>多文件上傳</legend>
  61. <input type="hidden" name="MAX_FILE_SIZE" value="10485760">
  62. <input type="file" multiple name="files[]">
  63. <button>上傳</button>
  64. </fieldset>
  65. </form>
  66. </body>
  67. </html>

2. MVC與依賴注入、服務(wù)容器對(duì)依賴對(duì)象的管理

  • 控制器:Controller.php運(yùn)行截圖

  • 模型:Model.php
  1. namespace mvc_user;
  2. use PDO;
  3. // 模型類
  4. class Model
  5. {
  6. // 獲取數(shù)據(jù)
  7. public function get_data()
  8. {
  9. $pdo = new PDO('mysql:dbname=phpedu','root','123456');
  10. $stmt = $pdo->prepare('select * from users limit 10');
  11. $stmt->execute();
  12. return $stmt->fetchAll(PDO::FETCH_ASSOC);
  13. }
  14. }
  • 視圖:View.php
  1. namespace mvc_user;
  2. // 視圖
  3. class View
  4. {
  5. // 數(shù)據(jù)顯示
  6. public function fetch($data)
  7. {
  8. $table = '<table border="1" cellspacing="0">';
  9. $table .= '<caption>用戶信息表</caption>
  10. <tr bgcolor="lightyellow">
  11. <td>UID</td>
  12. <td>姓名</td>
  13. <td>性別</td>
  14. <td>工資</td>
  15. <td>郵箱</td>
  16. <td>生日</td>
  17. </tr>';
  18. foreach ($data as $user) {
  19. $table .= '<tr>';
  20. $table .= '<td>' . $user['sid'] . '</td>';
  21. $table .= '<td>' . $user['name'] . '</td>';
  22. $table .= '<td>' . $user['gender'] . '</td>';
  23. $table .= '<td>' . $user['salary'] . '</td>';
  24. $table .= '<td>' . $user['email'] . '</td>';
  25. $table .= '<td>' . $user['birthday'] . '</td>';
  26. $table .= '</tr>';
  27. }
  28. $table .= '</table>';
  29. return $table;
  30. }
  31. }
  • 控制器:Controller.php
  1. namespace mvc_user;
  2. use Closure;
  3. require 'Model.php';
  4. require 'View.php';
  5. // 服務(wù)容器
  6. class Cont1
  7. {
  8. // 對(duì)象容器
  9. protected $instances = [];
  10. // 添加對(duì)象
  11. public function bind($alias,Closure $process)
  12. {
  13. $this->instances[$alias] = $process;
  14. }
  15. // 取出對(duì)象
  16. public function make($alias,$params=[]){
  17. return call_user_func_array($this->instances[$alias],[]);
  18. }
  19. }
  20. // 將依賴的對(duì)象添加到容器中
  21. $cont = new Cont1();
  22. $cont->bind('model',function () {return new Model();});
  23. $cont->bind('view',function () {return new view();});
  24. class Controller4
  25. {
  26. public function index(Cont1 $cont)
  27. {
  28. $data = $cont->make('model')->get_data();
  29. return $cont->make('view')->fetch($data);
  30. }
  31. }
  32. $controller = new Controller4();
  33. echo $controller->index($cont);
批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語(yǔ):
本博文版權(quán)歸博主所有,轉(zhuǎn)載請(qǐng)注明地址!如有侵權(quán)、違法,請(qǐng)聯(lián)系admin@php.cn舉報(bào)處理!
全部評(píng)論 文明上網(wǎng)理性發(fā)言,請(qǐng)遵守新聞評(píng)論服務(wù)協(xié)議
0條評(píng)論
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)