批改状态:合格
老师批语:
<!DOCTYPE html><html lang="zh-CN"><?php// $_FILES: PHP超全局变量数量, 保存着上传文件的全部信息printf('<pre>%s</pre>', print_r($_FILES, true));/*** 1. $_FILES: 二维数组,每个元素对应一个上传的文件* 2. name: 原始文件名* 3. type: 文件类型, mime类型* 4. tmp_name: 临时目录* 5. error: 错误代码* 5. size: 文件大小(字节表示 byte)*/if (isset($_FILES['my_pic'])) {$name = $_FILES['my_pic']['name'];$tmpName = $_FILES['my_pic']['tmp_name'];$error = $_FILES['my_pic']['error'];if ($error > 0) {$tips = '<span style="color:red">上传失败:</span>';switch ($error) {case 1:$tips .= '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';break;case 2:$tips .= '文件大小超过了上传表单中MAX_FILE_SIZE最大值';break;case 3:$tips .= '文件只有部分被上传';break;case 4:$tips .= '没有文件被上传';break;case 6:$tips .= '找不到临时目录';break;case 7:$tips .= '文件写入失败,请检查目录权限';break;}echo "<p>$tips</p>";} else {// 判断用户是不是通过合法的POST方式上传if (is_uploaded_file($tmpName)) {// 设置允许上传文件类型的白名单$allow = ['jpg', 'jpeg', 'png', 'gif'];// 获取文件扩展名$ext = pathinfo($name)['extension'];if (in_array($ext, $allow)) {// 二个条件都满足了// 1. post方式上传的 2. 文件类型是合法的// 目标目录$path = 'uploads/';// 自定义目标文件名$dest = $path . md5($name) . '.' . $ext;// 将文件从临时目录中移动到目标目录中并重命名if (move_uploaded_file($tmpName, $dest)) {echo '<p style="color:green">上传成功</p>';// 预览echo "<img src='$dest' width='200' >";} else {echo '<p style="color:red">移动失败</p>';}} else {echo '<p style="color:red">文件类型错误</p>';}} else {echo '<p style="color:red">非法方式上传</p>';}}}?><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>文件上传的表单构造,超全局变量$_FILE</title></head><body><!-- 允许上传文件的表单特征:1. method="POST"2. enctype="multipart/form-data" --><form action="" method="POST" enctype="multipart/form-data"><fieldset><legend>单文件上传</legend><!-- 浏览器中限制上传文件的大小,写到一个隐藏域中,并写到type=file之前 --><input type="hidden" name="MAX_FILE_SIZE" value="300000"><input type="file" name="my_pic"><button>上传</button></fieldset></form></body></html>
<!DOCTYPE html><html lang="zh-CN"><?php// $_FILES: PHP超全局变量数量, 保存着上传文件的全部信息printf('<pre>%s</pre>', print_r($_FILES, true));if (isset($_FILES['my_pic'])) {// 这时只需要遍历 $_FILES['my_pic']['error'] 这个数组foreach ($_FILES['my_pic']['error'] as $key => $error) {if ($error === 0) {// 临时文件名$tmpName = $_FILES['my_pic']['tmp_name'][$key];// 原始文件名$name = $_FILES['my_pic']['name'][$key];// 目标文件名$destFile = 'uploads/' . $name;move_uploaded_file($tmpName, $destFile);echo "<img src='$destFile' width='200'>";}}}?><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>多文件上传2</title></head><body><form action="" method="POST" enctype="multipart/form-data"><fieldset><legend>多文件上传:批量上传</legend><!-- multiple: 允许同时选择多个 --><input type="file" name="my_pic[]" multiple><button>上传</button></fieldset></form></body></html>
起始索引/偏移量=(当前页 - 1 ) * 显示数量
<?php// 1. 连接数据库$db = new PDO('mysql:dbname=phpedu', 'root', 'root');// 2. 当前页, 在GET参数中// https://www.php.cn/course.html?p=5// $page = isset($_GET['p']) ? $_GET['p'] : 1;// null合并$page = $_GET['p'] ?? 1;echo "当前页: p= $page <br>";// 3. 每页显示数量$num = 5;// 4. 记录总数$sql = 'SELECT COUNT(`id`) AS `total` FROM `staff`';$stmt = $db->prepare($sql);$stmt->execute();// 将某列的仠与php变量绑定 , `total` => $total$stmt->bindColumn('total', $total);$stmt->fetch(PDO::FETCH_ASSOC);echo "总记录数量: $total <br>";// 5. 总页数// 10.1 => 11 ceil: 向上取整,不丢数据$pages = ceil($total / $num);echo "总页数: $pages <br>";// 6. 偏移量// offset = (page - 1) * num$offset = ($page - 1) * $num;echo "偏移量: $offset <br>";// 7. 分页数据// $sql = "SELECT * FROM `staff` LIMIT $num OFFSET $offset";$sql = "SELECT * FROM `staff` LIMIT $offset, $num";$stmt = $db->prepare($sql);$stmt->execute();$staffs = $stmt->fetchAll(PDO::FETCH_ASSOC);// 遍历echo '<hr>';if (count($staffs) === 0) {echo '查询结果为空';} else {foreach ($staffs as $staff) {extract($staff);printf('$d-%s-%s-%s<br>', $id, $name, $sex, $email);}}echo '<hr>';
<?php require 'demo5.php' ?><!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>页面展示分页数据</title><style>table {width: 400px;border-collapse: collapse;text-align: center;}table th,table td {border: 1px solid;padding: 5px;}table thead {background-color: lightcyan;}table caption {font-size: larger;margin-bottom: 8px;}p>a {text-decoration: none;color: #555;border: 1px solid;padding: 5px 10px;margin: 10px 2px;}.active {background-color: seagreen;color: white;border: 1px solid seagreen;}</style></head><body><table><caption>员工信息表</caption><thead><tr><th>ID</th><th>姓名</th><th>性别</th><th>邮箱</th></tr></thead><tbody><?php foreach ($staffs as $staff) : extract($staff) ?><tr><td><?= $id ?></td><td><?= $name ?></td><td><?= $sex ?></td><td><?= $email ?></td></tr><?php endforeach ?></tbody></table><p><?php for ($i = 1; $i <= $pages; $i++) : ?><?php$url = $_SERVER['PHP_SELF'] . '?p=' . $i;$active = $i == $_GET['p'] ? 'active' : null;?><a href="<?= $url ?>" class="<?= $active ?>"><?= $i ?></a><?php endfor ?></p></body></html>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号