当前位置:首页 > PHP

Php手工实现

2026-03-13 01:46:51PHP

PHP 手工实现

PHP 手工实现通常指的是不依赖框架或库,直接使用原生 PHP 代码完成特定功能。以下是几个常见场景的手工实现方法:

数据库连接与操作

使用 PHP 原生函数连接 MySQL 数据库并执行查询:

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, name FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();

表单处理与验证

手工处理表单提交并验证输入:

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = htmlspecialchars($_POST["name"]);
    $email = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL);

    if (empty($name)) {
        $errors[] = "Name is required";
    }

    if (!$email) {
        $errors[] = "Valid email is required";
    }

    if (empty($errors)) {
        // 处理有效数据
        echo "Form submitted successfully";
    } else {
        foreach ($errors as $error) {
            echo $error . "<br>";
        }
    }
}

会话管理

手工实现用户登录和会话管理:

session_start();

// 登录验证
if (isset($_POST['login'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // 验证逻辑
    if ($username === 'admin' && $password === 'secret') {
        $_SESSION['user'] = $username;
        header("Location: dashboard.php");
        exit();
    } else {
        $error = "Invalid credentials";
    }
}

// 检查登录状态
function isLoggedIn() {
    return isset($_SESSION['user']);
}

// 登出
if (isset($_GET['logout'])) {
    session_destroy();
    header("Location: login.php");
    exit();
}

文件上传处理

手工实现文件上传功能:

$uploadDir = 'uploads/';
$allowedTypes = ['image/jpeg', 'image/png'];

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['file'])) {
    $file = $_FILES['file'];

    if ($file['error'] === UPLOAD_ERR_OK) {
        $fileType = mime_content_type($file['tmp_name']);

        if (in_array($fileType, $allowedTypes)) {
            $filename = uniqid() . '_' . basename($file['name']);
            $destination = $uploadDir . $filename;

            if (move_uploaded_file($file['tmp_name'], $destination)) {
                echo "File uploaded successfully";
            } else {
                echo "Error moving file";
            }
        } else {
            echo "Invalid file type";
        }
    } else {
        echo "Upload error: " . $file['error'];
    }
}

路由系统

简单的手工路由实现:

$request = $_SERVER['REQUEST_URI'];

switch ($request) {
    case '/':
        require 'views/home.php';
        break;
    case '/about':
        require 'views/about.php';
        break;
    case '/contact':
        require 'views/contact.php';
        break;
    default:
        http_response_code(404);
        require 'views/404.php';
        break;
}

模板引擎基础

手工实现简单的模板渲染:

Php手工实现

function renderTemplate($template, $data = []) {
    extract($data);
    ob_start();
    include "templates/$template.php";
    return ob_get_clean();
}

$data = ['title' => 'Home Page', 'content' => 'Welcome to our site'];
echo renderTemplate('home', $data);

这些示例展示了如何使用原生 PHP 手工实现常见功能,适合理解 PHP 底层工作原理或构建轻量级应用。对于更复杂的项目,建议考虑使用成熟的框架以提高开发效率和安全性。

标签: 手工Php
分享给朋友:

相关文章

react实现手工琴

react实现手工琴

React 实现手工琴 要实现一个手工琴(如虚拟钢琴或简单乐器)的 React 应用,可以结合 HTML5 的 Web Audio API 或第三方音频库(如 Tone.js)来生成声音,并通过 Re…

Php实现imagehash

Php实现imagehash

PHP 实现 ImageHash ImageHash 是一种图像指纹算法,用于快速比较图像的相似性。PHP 可以通过 GD 库或 Imagick 扩展实现该功能。以下是两种实现方式: 使用 GD…

实现一个计算器Php

实现一个计算器Php

基本计算器实现 创建一个简单的PHP计算器需要处理用户输入并执行基本的数学运算。以下是一个完整的示例代码: <?php $result = ""; if ($_SERVER["REQUEST_…

Php实现imagehash

Php实现imagehash

实现图片哈希(ImageHash)的 PHP 方法 图片哈希(ImageHash)是一种用于快速比较图片相似度的技术,通常用于去重或相似图片搜索。以下是基于 PHP 实现图片哈希的几种方法: 平均哈…

Php redis实现报名

Php redis实现报名

使用PHP和Redis实现报名功能 Redis作为高性能的键值存储系统,适合处理高并发的报名场景。以下是实现方案: 数据准备 在Redis中创建报名相关的数据结构: 活动信息哈希表:存储活…

Php实现投票系统

Php实现投票系统

数据库设计 创建一个MySQL数据库表来存储投票选项和投票记录。需要两个表:一个存储选项信息,另一个记录用户投票。 CREATE TABLE `poll_options` ( `id` int(…