php 案例代码 实现
以下是几个PHP实用案例代码示例,涵盖常见开发场景:
用户登录验证
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
// 模拟数据库验证
$valid_users = [
'admin' => password_hash('123456', PASSWORD_DEFAULT),
'user1' => password_hash('abc123', PASSWORD_DEFAULT)
];
if (isset($valid_users[$username]) && password_verify($password, $valid_users[$username])) {
$_SESSION['user'] = $username;
header('Location: dashboard.php');
} else {
echo "Invalid username or password";
}
?>
数据库CRUD操作
<?php
$conn = new mysqli('localhost', 'username', 'password', 'test_db');
// 创建数据
$sql = "INSERT INTO users (name, email) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $name, $email);
$name = "John Doe";
$email = "john@example.com";
$stmt->execute();
// 读取数据
$result = $conn->query("SELECT * FROM users");
while ($row = $result->fetch_assoc()) {
echo $row['name'] . ": " . $row['email'] . "<br>";
}
$conn->close();
?>
文件上传处理
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["file"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
// 检查文件类型
if($imageFileType != "jpg" && $imageFileType != "png") {
echo "只允许JPG/PNG文件";
$uploadOk = 0;
}
if ($uploadOk == 1 && move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
echo "文件上传成功";
} else {
echo "文件上传失败";
}
?>
REST API示例
<?php
header("Content-Type: application/json");
$method = $_SERVER['REQUEST_METHOD'];
$request = explode('/', trim($_SERVER['PATH_INFO'], '/'));
switch ($method) {
case 'GET':
echo json_encode(['data' => 'GET请求响应']);
break;
case 'POST':
$input = json_decode(file_get_contents('php://input'), true);
echo json_encode(['received' => $input]);
break;
default:
http_response_code(405);
echo json_encode(['error' => '方法不支持']);
}
?>
发送电子邮件
<?php
$to = "recipient@example.com";
$subject = "测试邮件";
$message = "这是一封测试邮件内容";
$headers = "From: webmaster@example.com";
if (mail($to, $subject, $message, $headers)) {
echo "邮件发送成功";
} else {
echo "邮件发送失败";
}
?>
这些案例涵盖了PHP开发中的常见需求,包括用户认证、数据库操作、文件处理、API开发和邮件发送等功能。实际使用时需要根据具体环境配置参数和调整逻辑。







