Php手工实现
PHP手工实现通常指不依赖框架或现成工具,通过原生PHP代码完成特定功能开发。以下是常见场景的实现方法:
数据库连接与操作
使用mysqli或PDO建立数据库连接:
$conn = new mysqli('localhost', 'username', 'password', 'dbname');
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
执行SQL查询并获取结果:
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $userId);
$stmt->execute();
$result = $stmt->get_result();
表单处理与验证
接收并过滤表单数据:
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
基础验证逻辑:
if (empty($name)) {
$errors[] = "Name is required";
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "Invalid email format";
}
会话管理
启动会话并设置变量:
session_start();
$_SESSION['user_id'] = $userId;
$_SESSION['last_login'] = time();
销毁会话:
session_start();
session_unset();
session_destroy();
文件上传处理
处理上传文件:
$targetDir = "uploads/";
$targetFile = $targetDir . basename($_FILES["file"]["name"]);
if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
echo "File uploaded successfully";
}
安全防护措施
密码哈希处理:
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
XSS防护:
echo htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');
路由实现
基础路由解析:
$request = $_SERVER['REQUEST_URI'];
switch ($request) {
case '/':
require 'home.php';
break;
case '/about':
require 'about.php';
break;
default:
http_response_code(404);
require '404.php';
}
模板引擎简易实现
基础模板渲染:
function render($template, $data = []) {
extract($data);
ob_start();
include "views/{$template}.php";
return ob_get_clean();
}
错误处理
自定义错误处理:
set_error_handler(function($errno, $errstr, $errfile, $errline) {
error_log("Error: [$errno] $errstr in $errfile on line $errline");
header("Location: /error");
exit;
});
自动加载类
简易类自动加载:
spl_autoload_register(function ($className) {
require __DIR__ . '/classes/' . str_replace('\\', '/', $className) . '.php';
});



