📜  通过 slug 回显帖子内容 - PHP (1)

📅  最后修改于: 2023-12-03 15:41:58.963000             🧑  作者: Mango

通过 slug 回显帖子内容 - PHP

在开发网站或博客的过程中,我们需要使用到slug(翻译为“标识符”或“缩略词”)来唯一标识一篇文章或页面。这样有助于更好地管理我们网站的内容,并使搜索引擎更容易识别和索引我们的内容。

现在,我们来介绍如何通过slug回显帖子内容,使用PHP编写一个简单的功能。

首先,我们需要在数据库中创建一个posts表格,包含必要的字段,如id,title,slug,content等等。我们可以使用以下代码片段来创建这个表格:

CREATE TABLE posts (
  id INT(11) AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(255) NOT NULL,
  slug VARCHAR(255) NOT NULL UNIQUE,
  content TEXT,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

接下来,我们需要编写PHP代码来通过slug获取帖子内容。我们可以使用以下代码片段:

<?php

// 连接到数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  // 设置 PDO 错误模式为异常
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
  echo "连接失败: " . $e->getMessage();
}

// 获取slug参数
$slug = $_GET['slug'];

// 查询对应的帖子
$stmt = $conn->prepare("SELECT * FROM posts WHERE slug = :slug");
$stmt->bindParam(':slug', $slug);
$stmt->execute();
$post = $stmt->fetch();

// 返回帖子内容
if ($post) {
  $markdown = $post['content'];
  header('Content-Type: text/markdown; charset=utf-8');
  echo $markdown;
} else {
  echo "没有找到该帖子!";
}
?>

上述代码通过GET方法获取slug参数并在数据库中查询对应的帖子。如果找到了帖子,则返回内容的markdown格式;否则返回一个错误消息。

需要注意的是,我们需要在返回的时候设置Content-Type头部,确保浏览器正确识别并解析为markdown格式。

以上就是通过slug回显帖子内容的简单PHP代码,带有注释和详细说明。您可以根据需要进行修改和适应自己的网站或应用程序。