php 如何实现
PHP 实现方式
PHP 提供了多种方法来实现不同的功能需求。以下是几种常见场景的实现方式:
数据库连接
使用 PDO 连接 MySQL 数据库:

$host = 'localhost';
$dbname = 'database_name';
$username = 'username';
$password = 'password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
文件上传处理
处理文件上传并验证:
$targetDir = "uploads/";
$targetFile = $targetDir . basename($_FILES["file"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
if (file_exists($targetFile)) {
echo "File already exists.";
$uploadOk = 0;
}
if ($_FILES["file"]["size"] > 500000) {
echo "File is too large.";
$uploadOk = 0;
}
if ($uploadOk == 0) {
echo "File was not uploaded.";
} else {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
echo "File uploaded successfully.";
} else {
echo "Error uploading file.";
}
}
表单验证
验证用户输入并防止 XSS 攻击:

$name = $email = "";
$nameErr = $emailErr = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
会话管理
实现用户登录会话:
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if ($_POST["username"] == "admin" && $_POST["password"] == "password") {
$_SESSION["loggedin"] = true;
$_SESSION["username"] = $_POST["username"];
header("location: welcome.php");
} else {
$login_err = "Invalid credentials";
}
}
// 在受保护页面检查登录状态
session_start();
if (!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true) {
header("location: login.php");
exit;
}
REST API 创建
创建简单的 REST API:
header("Content-Type: application/json");
$method = $_SERVER['REQUEST_METHOD'];
$request = explode('/', trim($_SERVER['PATH_INFO'], '/'));
switch ($method) {
case 'GET':
echo json_encode(["message" => "GET request received"]);
break;
case 'POST':
$data = json_decode(file_get_contents('php://input'), true);
echo json_encode(["message" => "POST request received", "data" => $data]);
break;
case 'PUT':
echo json_encode(["message" => "PUT request received"]);
break;
case 'DELETE':
echo json_encode(["message" => "DELETE request received"]);
break;
default:
http_response_code(405);
echo json_encode(["error" => "Method not allowed"]);
}
以上代码示例展示了 PHP 在不同场景下的实现方式。根据具体需求,可以调整和扩展这些基本实现。






