php 功能实现
PHP 功能实现指南
PHP 是一种广泛使用的服务器端脚本语言,适用于 Web 开发。以下是一些常见功能的实现方法:
数据库连接与操作
使用 PDO 扩展连接 MySQL 数据库:
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'username';
$password = 'password';
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
执行查询:
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');
$stmt->execute(['id' => $userId]);
$user = $stmt->fetch();
表单处理
接收并验证表单数据:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if ($name && $email) {
// 处理有效数据
} else {
// 显示错误
}
}
文件上传
处理文件上传:
if (isset($_FILES['file'])) {
$uploadDir = 'uploads/';
$fileName = basename($_FILES['file']['name']);
$targetPath = $uploadDir . $fileName;
if (move_uploaded_file($_FILES['file']['tmp_name'], $targetPath)) {
echo 'File uploaded successfully';
} else {
echo 'File upload failed';
}
}
会话管理
使用会话保持用户登录状态:
session_start();
// 设置会话变量
$_SESSION['user_id'] = 123;
// 检查登录状态
if (isset($_SESSION['user_id'])) {
echo 'User is logged in';
}
// 销毁会话
session_destroy();
API 开发
创建简单的 REST API:
header('Content-Type: application/json');
$method = $_SERVER['REQUEST_METHOD'];
$request = explode('/', trim($_SERVER['PATH_INFO'],'/'));
switch ($method) {
case 'GET':
// 处理 GET 请求
echo json_encode(['data' => 'GET response']);
break;
case 'POST':
// 处理 POST 请求
$input = json_decode(file_get_contents('php://input'), true);
echo json_encode(['data' => $input]);
break;
}
安全实践
密码哈希:
$password = 'userpassword';
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
if (password_verify($password, $hashedPassword)) {
echo 'Password is valid';
}
防止 SQL 注入:
$stmt = $pdo->prepare('INSERT INTO users (name, email) VALUES (?, ?)');
$stmt->execute([$name, $email]);
性能优化
使用 OPcache:
; php.ini 配置
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
缓存数据:
$cache = new Memcached();
$cache->addServer('localhost', 11211);
$key = 'user_data_' . $userId;
if (!$data = $cache->get($key)) {
$data = fetchDataFromDatabase($userId);
$cache->set($key, $data, 3600);
}
错误处理
自定义错误处理:
set_error_handler(function($errno, $errstr, $errfile, $errline) {
error_log("Error: [$errno] $errstr in $errfile on line $errline");
// 可以返回 false 继续执行标准错误处理
});
try {
// 可能出错的代码
} catch (Exception $e) {
error_log('Exception: ' . $e->getMessage());
http_response_code(500);
echo 'An error occurred';
}
现代 PHP 特性
使用命名空间:
namespace MyProject;
class MyClass {
// 类定义
}
使用 Composer 依赖管理:

{
"require": {
"monolog/monolog": "^2.0"
}
}
这些示例涵盖了 PHP 开发中的常见功能实现。根据具体需求,可以进一步扩展和定制这些基础代码。






