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

搜索
博主信息
博文 49
粉絲 0
評(píng)論 0
訪問量 49533
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
命名空間進(jìn)階、文件上傳與分頁處理
超超多喝水
原創(chuàng)
855人瀏覽過

命名空間進(jìn)階、文件上傳與分頁處理

命名空間的進(jìn)階

  • 使用 use 關(guān)鍵字可以引入一個(gè)命名空間或者引入一個(gè)命名空間的類,但是一般是建議引用空間,引用空間后,然后可以使用更短的代碼繼續(xù)往后引用類
  • 如果命名空間有遇到需要改名的情況,可以使用 as 關(guān)鍵字 給類或最后一級(jí)空間進(jìn)行改名,一可以處理重名問題,二可以自定義名稱更好做區(qū)分或簡(jiǎn)化
  1. namespace one\test\controller {
  2. class DEMO{
  3. public static function test(){
  4. return "one.demo.test";
  5. }
  6. }
  7. // echo DEMO::test();
  8. }
  9. namespace one\test\model {
  10. class DEMO{
  11. public static function test(){
  12. return "TWO.demo.test";
  13. }
  14. }
  15. //直接引用類
  16. //類有重名可以用as給類更名
  17. // use \one\test\controller\DEMO as DE;
  18. // echo DE::test();
  19. //引用命名空間后再引用類,并給controller更名
  20. use \one\test\controller as ctl;
  21. echo ctl\DEMO::test();
  22. }
  • 自動(dòng)加載器進(jìn)階優(yōu)化,自動(dòng)加載器引入使用后,如果引用的類文件中還有引用其他類文件,那么這個(gè)引用過程也會(huì)自動(dòng)使用自動(dòng)加載器
  1. spl_autoload_register(function($class){
  2. // DIRECTORY_SEPARATOR系統(tǒng)分隔符常量,把所有的\都轉(zhuǎn)為系統(tǒng)分隔符
  3. $file = str_replace('\\',DIRECTORY_SEPARATOR,$class).'.php';
  4. // 判斷$file是否是正常的文件,是否存在該文件,都為真返回引入,為假拋錯(cuò)
  5. if(is_file($file)&&file_exists($file)){
  6. require $file;
  7. }else{
  8. throw new \Exception("文件名不合法或文件不存在");
  9. }
  10. });

文件上傳

  • 獲取上傳文件信息使用超全局變量$FILES()
  • 系統(tǒng)目錄的處理
    • 創(chuàng)建目錄 mkdir(目錄名稱,權(quán)限(默認(rèn) 0777,即允許全局訪問),true);
    • 更改文件權(quán)限 chmod(目錄名稱,權(quán)限);
  • 文件移動(dòng)到存儲(chǔ)位置move_uploaded_file(上傳文件的臨時(shí)路徑,新目錄及文件名,)
  • 多文件上傳,file 的 input 類型行內(nèi)標(biāo)簽需要加入 multiple 關(guān)鍵字,name 的值設(shè)為數(shù)組,此時(shí)$FILES 就能獲取一個(gè)文件的數(shù)組,可以通過循環(huán)遍歷處理該數(shù)組進(jìn)行數(shù)據(jù)庫添加或者處理
  • in_array(要搜索的值,被搜索的數(shù)組,是否全等(true 全等 ,false 非全等,默認(rèn)為 false))可以用來判斷文件類型是否在我們規(guī)定的類型內(nèi)
  • 文件名如果重復(fù)會(huì)出現(xiàn)上傳失敗的情況,此時(shí)文件名可以使用時(shí)間戳或隨機(jī)數(shù)生成一個(gè)隨機(jī)名稱上傳

分頁處理

數(shù)據(jù)庫分頁處理,主要需要捋清楚每頁要分的條數(shù)、每頁顯示條數(shù)的起始位置計(jì)算以及最后有多少頁數(shù)據(jù),判斷起始頁跟結(jié)束頁,對(duì)上一頁、下一頁進(jìn)行處理

  1. <?php
  2. //判斷是否連接數(shù)據(jù)庫
  3. try{
  4. $pdo = new PDO('mysql:host=localhost;dbname=test','root','z1071930401');
  5. }catch(PDOException $e){
  6. echo '數(shù)據(jù)庫連接失敗' . $e->getMessage();
  7. }
  8. // 給p賦初始默認(rèn)值
  9. if(empty($_GET['p'])){
  10. $p = 1;
  11. }else{
  12. $p = $_GET['p'];
  13. }
  14. // 設(shè)置每頁條數(shù)
  15. $count = 5;
  16. //數(shù)據(jù)庫的數(shù)據(jù)下標(biāo)類似于數(shù)組,都是從0開始,因此第一頁數(shù)據(jù)就是0-4,第二頁就是0-5,按照頁數(shù)與條數(shù)的乘積計(jì)算,每頁顯示的條數(shù)應(yīng)該為($p-1)*$count
  17. $sql = 'SELECT * FROM `user` LIMIT ' . ($p-1)*$count . ',' . $count;
  18. $pre = $pdo -> prepare($sql);
  19. $exe = $pre -> execute();
  20. // 將查詢出來的結(jié)果集賦值給$data
  21. $data = $pre -> fetchAll();
  22. //使用count()方法查詢總共有多少條數(shù)據(jù)
  23. $pre = $pdo -> prepare('SELECT count(*) as total FROM `user`');
  24. $exe = $pre -> execute();
  25. // 將查詢出來的條數(shù)賦值給total
  26. $total = $pre -> fetch()['total'];
  27. // 使用ceil()方法向上四舍入為最接近的整數(shù),獲取頁數(shù),擴(kuò)展:floor()方法向下四舍入為最接近的整數(shù),round()對(duì)浮點(diǎn)數(shù)進(jìn)行四舍五入
  28. $page = ceil($total/$count);
  29. ?>
  30. <!DOCTYPE html>
  31. <html lang="en">
  32. <head>
  33. <meta charset="UTF-8">
  34. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  35. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  36. <title>用戶分頁</title>
  37. <style>
  38. .pagination {
  39. display: inline-block;
  40. padding-left: 0;
  41. margin: 20px 0;
  42. border-radius: 4px;
  43. }
  44. .pagination > li {
  45. display: inline;
  46. }
  47. .pagination > li > a,
  48. .pagination > li > span {
  49. position: relative;
  50. float: left;
  51. padding: 6px 12px;
  52. margin-left: -1px;
  53. line-height: 1.42857143;
  54. color: #337ab7;
  55. text-decoration: none;
  56. background-color: #fff;
  57. border: 1px solid #ddd;
  58. }
  59. .pagination > li:first-child > a,
  60. .pagination > li:first-child > span {
  61. margin-left: 0;
  62. border-top-left-radius: 4px;
  63. border-bottom-left-radius: 4px;
  64. }
  65. .pagination > li:last-child > a,
  66. .pagination > li:last-child > span {
  67. border-top-right-radius: 4px;
  68. border-bottom-right-radius: 4px;
  69. }
  70. .pagination > li > a:hover,
  71. .pagination > li > span:hover,
  72. .pagination > li > a:focus,
  73. .pagination > li > span:focus {
  74. z-index: 2;
  75. color: #23527c;
  76. background-color: #eee;
  77. border-color: #ddd;
  78. }
  79. .pagination > .active > a,
  80. .pagination > .active > span,
  81. .pagination > .active > a:hover,
  82. .pagination > .active > span:hover,
  83. .pagination > .active > a:focus,
  84. .pagination > .active > span:focus {
  85. z-index: 3;
  86. color: #fff;
  87. cursor: default;
  88. background-color: #337ab7;
  89. border-color: #337ab7;
  90. }
  91. .pagination > .disabled > span,
  92. .pagination > .disabled > span:hover,
  93. .pagination > .disabled > span:focus,
  94. .pagination > .disabled > a,
  95. .pagination > .disabled > a:hover,
  96. .pagination > .disabled > a:focus {
  97. color: #777;
  98. cursor: not-allowed;
  99. background-color: #fff;
  100. border-color: #ddd;
  101. }
  102. .pagination > form > input,button{
  103. position: relative;
  104. float: left;
  105. padding: 6px 12px;
  106. margin-left: -1px;
  107. line-height: 1.42857143;
  108. color: #337ab7;
  109. text-decoration: none;
  110. background-color: #fff;
  111. border: 1px solid #ddd;
  112. }
  113. .pagination > form > button:hover{
  114. z-index: 2;
  115. cursor:pointer;
  116. color: #23527c;
  117. background-color: #eee;
  118. border-color: #ddd;
  119. }
  120. </style>
  121. </head>
  122. <body>
  123. <a href="add.php">添加</a>
  124. <table border="1">
  125. <thead>
  126. <tr>
  127. <th width="50">ID</th>
  128. <th width="100">賬戶</th>
  129. <th width="100">姓名</th>
  130. <th width="100">年齡</th>
  131. <th width="100">手機(jī)號(hào)</th>
  132. <th width="200">入職時(shí)間</th>
  133. <th width="200">登錄時(shí)間</th>
  134. <th width="100">狀態(tài)</th>
  135. </tr>
  136. </thead>
  137. <tbody>
  138. <?php
  139. // 循環(huán)遍歷顯示的數(shù)據(jù)內(nèi)容
  140. foreach($data as $v){
  141. ?>
  142. <tr>
  143. <td><?=$v['id'] ?></td>
  144. <td><?=$v['account'] ?></td>
  145. <td><?=$v['name'] ?></td>
  146. <td><?=$v['age'].'歲' ?></td>
  147. <td><?=$v['phone'] ?></td>
  148. <td><?=date('Y-m-d',$v['add_time']) ?></td>
  149. <td><?=date('Y-m-d H:i:s',$v['last_time']) ?></td>
  150. <!-- <td><?=$v['status']==1?'開啟':'關(guān)閉' ?></td> -->
  151. <td>
  152. <?php
  153. if($v['status'] == 1){
  154. echo '<span style="color:green;">開啟</span>';
  155. }else{
  156. echo '<span style="color:red;">關(guān)閉</span>';
  157. }
  158. ?></td>
  159. </tr>
  160. <?php
  161. }
  162. ?>
  163. </tbody>
  164. </table>
  165. <ul class="pagination">
  166. <?php
  167. // 當(dāng)前頁面為1,就代表沒有上一頁,設(shè)置上一頁無法點(diǎn)擊
  168. $html = '';
  169. if($p == 1){
  170. $html .= '<li class="disabled">';
  171. $html .= ' <a>上一頁</a>';
  172. $html .= '</li>';
  173. }else{
  174. $html .= '<li>';
  175. $html .= ' <a href="list.php?p='.($p-1).'">上一頁</a>';
  176. $html .= '</li>';
  177. }
  178. // 循環(huán)遍歷每頁數(shù)據(jù)鏈接
  179. for($i=1;$i<=$page;$i++){
  180. $html .= '<li ';
  181. // 判斷點(diǎn)擊的是哪一頁給哪一頁添加active類
  182. if($i == $p){
  183. $html .= 'class="active"';
  184. }
  185. $html .= '>';
  186. $html .= ' <a href="list.php?p='.$i.'">'.$i.'</a>';
  187. $html .= '</li>';
  188. }
  189. //判斷如果點(diǎn)擊的頁碼為最后一頁,就代表沒有下一頁,設(shè)置下一頁無法點(diǎn)擊
  190. if($p == $page){
  191. $html .= '<li class="disabled">';
  192. $html .= ' <a>下一頁</a>';
  193. $html .= '</li>';
  194. }else{
  195. $html .= '<li>';
  196. $html .= ' <a href="list.php?p='.($p+1).'">下一頁</a>';
  197. $html .= '</li>';
  198. }
  199. echo $html;
  200. ?>
  201. <!-- 配置輸入框加跳轉(zhuǎn)頁 -->
  202. <form action="list.php" method="get" onclick="false">
  203. <input type="text" name="p">
  204. <button onclick="window.location.href=<?php echo '\'list.php?p='.$_GET['p'].'\''; ?>;">跳轉(zhuǎn)</button>
  205. </form>
  206. </ul>
  207. </body>
  208. </html>
批改老師:PHPzPHPz

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

老師批語:
本博文版權(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é)