当前位置:首页 > PHP

php实现新闻

2026-02-28 11:20:57PHP

PHP实现新闻系统的关键步骤

数据库设计 创建新闻表包含字段如id、title、content、author、publish_time、category等。使用MySQL可通过以下SQL创建:

CREATE TABLE news (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    content TEXT NOT NULL,
    author VARCHAR(100),
    publish_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    category VARCHAR(50)
);

连接数据库 使用PDO或MySQLi建立数据库连接:

$db = new PDO('mysql:host=localhost;dbname=news_db', 'username', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

新闻发布功能 创建表单提交新闻数据,后端处理插入数据库:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $stmt = $db->prepare("INSERT INTO news (title, content, author, category) VALUES (?, ?, ?, ?)");
    $stmt->execute([
        $_POST['title'],
        $_POST['content'],
        $_POST['author'],
        $_POST['category']
    ]);
}

新闻列表展示 查询数据库并展示新闻列表:

$stmt = $db->query("SELECT * FROM news ORDER BY publish_time DESC");
$newsList = $stmt->fetchAll(PDO::FETCH_ASSOC);

新闻详情页 通过ID参数获取单条新闻:

php实现新闻

$stmt = $db->prepare("SELECT * FROM news WHERE id = ?");
$stmt->execute([$_GET['id']]);
$news = $stmt->fetch(PDO::FETCH_ASSOC);

新闻分类功能 添加分类筛选:

$category = isset($_GET['category']) ? $_GET['category'] : null;
$sql = "SELECT * FROM news";
if ($category) {
    $sql .= " WHERE category = ?";
    $stmt = $db->prepare($sql);
    $stmt->execute([$category]);
} else {
    $stmt = $db->query($sql);
}

分页实现 使用LIMIT和OFFSET实现分页:

$perPage = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $perPage;

$stmt = $db->prepare("SELECT * FROM news LIMIT ? OFFSET ?");
$stmt->bindValue(1, $perPage, PDO::PARAM_INT);
$stmt->bindValue(2, $offset, PDO::PARAM_INT);
$stmt->execute();

安全措施 对用户输入进行过滤和预处理:

php实现新闻

$title = filter_input(INPUT_POST, 'title', FILTER_SANITIZE_STRING);
$content = filter_input(INPUT_POST, 'content', FILTER_SANITIZE_SPECIAL_CHARS);

前端展示 在HTML中循环输出新闻列表:

<?php foreach ($newsList as $news): ?>
    <article>
        <h3><?= htmlspecialchars($news['title']) ?></h3>
        <p><?= nl2br(htmlspecialchars($news['content'])) ?></p>
        <small>作者:<?= htmlspecialchars($news['author']) ?></small>
    </article>
<?php endforeach; ?>

文件上传 实现新闻图片上传功能:

if (isset($_FILES['image'])) {
    $uploadDir = 'uploads/';
    $fileName = uniqid() . '_' . basename($_FILES['image']['name']);
    move_uploaded_file($_FILES['image']['tmp_name'], $uploadDir . $fileName);
}

缓存优化 使用Redis或Memcached缓存热门新闻:

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$cacheKey = 'hot_news';
if (!$news = $redis->get($cacheKey)) {
    $news = getHotNewsFromDB(); // 自定义函数
    $redis->set($cacheKey, serialize($news), 3600);
} else {
    $news = unserialize($news);
}

标签: 新闻php
分享给朋友:

相关文章

php实现搜索功能

php实现搜索功能

实现基础搜索功能 使用PHP和MySQL实现基础的搜索功能需要结合表单提交与数据库查询。创建一个HTML表单用于接收用户输入的搜索关键词,通过PHP处理表单数据并查询数据库。 // 搜索表单 (HT…

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE o…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_…

php实现一个

php实现一个

PHP 实现一个简单的计算器 创建一个基本的计算器,支持加、减、乘、除运算。以下是一个完整的实现代码示例: <?php $result = ""; if ($_SERVER["REQUEST…