PHP中批量生成静态html(命令行下运行PHP)_PHP
众所周知,大部分网站的新闻资讯或商品信息都是静态页面。这样做的好处主要是为了:1、加快访问速度,避免过多的操作数据库;2、SEO优化,便于搜索引擎收录。
本示例围绕 CMS 系统的静态页面方案出发,展示批量生成静态 html 功能。
注:本文程序只能在 Windows 的 DOS 或 Linux 下执行 PHP 命令来运行。
本示例主要有4个文件:config.inc.php(配置文件)、Db.class.php(数据库 PDO 类)、Model.class.php(PDO数据库操作类)、index.php(执行文件)
config.inc.php
复制代码 代码如下:
header('Content-Type:text/html;Charset=utf-8');
date_default_timezone_set('PRC');
define('ROOT_PATH', dirname(__FILE__)); // 根目录
define('DB_DSN', 'mysql:host=localhost;dbname=article'); // MySQL 的 PDO dsn
define('DB_USER', 'root'); // 数据库用户名
define('DB_PWD', '1715544'); // 数据库密码(请您根据实际情况自行设定)
function __autoload($className) {
require_once ROOT_PATH . '/includes/'. ucfirst($className) .'.class.php';
}
?>
Db.class.php
复制代码 代码如下:
// 连接数据库
class Db {
static public function getDB() {
try {
$pdo = new PDO(DB_DSN, DB_USER, DB_PWD);
$pdo->setAttribute(PDO::ATTR_PERSISTENT, true); // 设置数据库连接为持久连接
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 设置抛出错误
$pdo->setAttribute(PDO::ATTR_ORACLE_NULLS, true); // 设置当字符串为空转换为 SQL 的 NULL
$pdo->query('SET NAMES utf8'); // 设置数据库编码
} catch (PDOException $e) {
exit('数据库连接错误,错误信息:'. $e->getMessage());
}
return $pdo;
}
}
?>
Model.class.php
复制代码 代码如下:
// 操作 SQL
class Model {
/**
* SQL 增删改操作,返回受影响的行数
* @param string $sql
* @return int
*/
public function aud($sql) {
try {
$pdo = Db::getDB();
$row = $pdo->exec($sql);
} catch (PDOException $e) {
exit($e->getMessage());
}
return $row;
}
/**
* 返回全部数据,返回 PDOStatement 对象
* @param string $sql
* @return PDOStatement
*/
public function getAll($sql) {
try {
$pdo = Db::getDB();
$result = $pdo->query($sql);
return $result;
} catch (PDOException $e) {
exit($e->getMessage());
}
}
}
?>
index.php
复制代码 代码如下:
require_once './config.inc.php';
$m = new Model();
$ids = $m->getAll("SELECT id FROM article ORDER BY id ASC");
foreach ($ids as $rowIdArr) {
$idStr .= $rowIdArr['id'].',';
}
$idStr = rtrim($idStr, ','); // 所有文章的 ID 号集合
$idArr = explode(',', $idStr); // 分割成数组
// 下面的程序循环生成静态页面
foreach ($idArr as $articleId) {
$re = $m->getAll("SELECT id,title,date,author,source,content FROM article WHERE id =". $articleId); // $re 为每篇文章的内容,注意:其类型为:PDOStatement
$article = array(); // $article 为一个数组,保存每篇文章的title、date、author、content、source
foreach ($re as $r) {
$article = array(
'title'=>$r['title'],
'date'=>$r['date'],
'author'=>$r['author'],
'source'=>$r['source'],
'content'=>$r['content']
);
}
$articlePath = ROOT_PATH. '/article'; // $articlePath 为静态页面放置的目录
if (!is_dir($articlePath)) mkdir($articlePath, 0777); // 检查目录是否存在,不存在则创建
$fileName = ROOT_PATH . '/article/' . $articleId . '.html'; // $fileName 生成的静态文件名,格式:文章ID.html(主键ID不可能冲突)
$articleTemPath = ROOT_PATH . '/templates/article.html'; // $articleTemPath 文章模板路径
$articleContent = file_get_contents($articleTemPath); // 获取模板里面的内容
// 对模板里面设置的变量进行替换。即比如:把模板里面的 替换成数据库里读取的 title,替换完毕赋值给变量 $articleContent
$articleContent = getArticle(array_keys($article), $articleContent, $article);
$resource = fopen($fileName, 'w');
file_put_contents($fileName, $articleContent); // 写入 HTML 文件
}
/**
* getArticle($arr, $content, $article) 对模板进行替换操作
* @param array $arr 替换变量数组
* @param string $content 模板内容
* @param array $article 每篇文章内容数组,格式:array('title'=>xx, 'date'=>xx, 'author'=>xx, 'source'=>xx, 'content'=>xx);
*/
function getArticle($arr, $content, $article) {
// 循环替换
foreach ($arr as $item) {
$content = str_replace('', $article[$item], $content);
}
return $content;
}
?>
运行截图(Windows 的 DOS 为例)
运行完毕截图:
运行2分钟左右就可以生成 9000多 html。
来自Lee.的专栏 转载注明出处!!!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Pour ceux qui ne le connaissent pas, le mode faible consommation réduit la consommation d'énergie de votre Mac, prolongeant éventuellement temporairement la durée de vie de la batterie au détriment des performances, mais il est suffisamment bien géré pour que la plupart des utilisateurs ne remarquent aucune dégradation particulière. Il s'agit d'un mode très utile si vous êtes un utilisateur d'ordinateur portable Mac et que vous essayez d'optimiser la durée de vie de la batterie de votre MacBook Pro ou Air. Activer le mode faible consommation Mac à partir de la ligne de commande Depuis le terminal, tapez la chaîne de commande suivante sur n'importe quel ordinateur portable Mac : sudo pmset -a lowpowermode 1 Appuyez sur Entrée comme sudo l'exige et saisissez le mot de passe administrateur pour vous authentifier.

De nombreux amis qui utilisent le système Win10 ont rencontré ce problème lors de la lecture de jeux ou de l'installation du système. L'application ne peut pas être démarrée car la configuration parallèle de l'application est incorrecte. Pour plus d’informations, consultez le journal des événements de l’application ou utilisez l’outil de ligne de commande sxstrace.exe. Cela peut être dû au fait que le système d'exploitation ne dispose pas des autorisations correspondantes. Jetons un coup d'œil au didacticiel spécifique ci-dessous. Tutoriel sur l'utilisation de l'outil sxstrace.exe en ligne de commande 1. Ce problème se produit généralement lors de l'installation de programmes et de jeux. L'invite est la suivante : L'application ne peut pas être démarrée car la configuration parallèle de l'application est incorrecte. Pour plus d’informations, consultez le journal des événements de l’application ou utilisez l’outil de ligne de commande sxstrace.exe. 2. Démarrer →

Avec l'application généralisée du système d'exploitation Linux, de plus en plus de personnes commencent à avoir besoin d'apprendre et de comprendre les commandes et raccourcis de base du système Linux. Dans cet article, nous présenterons quelques commandes et raccourcis Linux couramment utilisés pour aider les débutants à comprendre le système Linux et à améliorer l'efficacité du travail. Commandes couramment utilisées Commande 1.1ls La commande ls est l'une des commandes les plus couramment utilisées sous Linux. Il est principalement utilisé pour lister les fichiers et sous-répertoires du répertoire courant. Les options couramment utilisées sont : -l : affiche les informations sur le fichier au format long, y compris le type de fichier.

Cet article détaille les étapes de mise à niveau d'Ubuntu 20.04 vers 22.04. Pour les utilisateurs utilisant Ubuntu 20.04, ils ont manqué les nouvelles fonctionnalités et avantages apportés par la version 22.04. Afin d'obtenir une meilleure expérience et une meilleure sécurité, il est recommandé de mettre à niveau vers une version plus récente d'Ubuntu à temps. Ubuntu22.04 porte le nom de code « Jamie Jellyfish », explorons comment obtenir la dernière version LTS ! Comment mettre à niveau Ubuntu 20.04 vers 22.04 via la ligne de commande Maîtriser la ligne de commande vous donnera un avantage. Bien qu'il soit possible de mettre à jour Ubuntu via l'interface graphique, nous nous concentrerons sur la ligne de commande. Tout d’abord, vérifions la version actuellement en cours d’exécution d’Ubuntu à l’aide de la commande suivante : $

En Python, les paramètres peuvent être transmis aux scripts via la ligne de commande. Ces paramètres peuvent être utilisés dans des scripts pour effectuer différentes actions en fonction de différentes entrées. Explication détaillée des paramètres de ligne de commande Python : 1. Paramètres de position : paramètres transmis au script dans l'ordre sur la ligne de commande. Ils sont accessibles via la position à l'intérieur du script. 2. Options de ligne de commande : paramètres commençant par - ou -, généralement utilisés. pour spécifier des options ou des indicateurs spécifiques pour le script ; 3. Transmettre les valeurs des paramètres : transmettez les valeurs des paramètres via la ligne de commande.

Commencez le parcours du projet Django : démarrez à partir de la ligne de commande et créez votre premier projet Django. Django est un framework d'application Web puissant et flexible. Il est basé sur Python et fournit de nombreux outils et fonctions nécessaires au développement d'applications Web. Cet article vous amènera à créer votre premier projet Django à partir de la ligne de commande. Avant de commencer, assurez-vous que Python et Django sont installés. Étape 1 : Créer le répertoire du projet Tout d'abord, ouvrez la fenêtre de ligne de commande et créez un nouveau répertoire

Résumé de la façon d'utiliser MySQL et C++ pour développer un système de gestion de bibliothèque basé sur la ligne de commande : Dans cet article, nous présenterons comment utiliser MySQL et C++ pour développer un système de gestion de bibliothèque simple basé sur la ligne de commande. Nous couvrirons l'ensemble du processus, depuis la conception de la base de données jusqu'à l'implémentation du code C++, et fournirons des exemples de code spécifiques. Introduction : Un système de gestion de bibliothèque est une application courante utilisée pour gérer une bibliothèque ou une collection de livres personnels. En utilisant MySQL comme base de données et C++ comme langage de programmation, nous pouvons facilement implémenter

Comment effectuer l'agrégation de journaux et les statistiques via les outils de ligne de commande Linux ? La journalisation est une tâche très importante lors de la gestion et de la maintenance des systèmes Linux. Grâce aux journaux, vous pouvez visualiser le fonctionnement du système, résoudre les problèmes et effectuer une analyse des performances. Pour les systèmes à grande échelle, le nombre de journaux est souvent très important. Comment regrouper et compter efficacement les journaux est devenu un défi pour le personnel d'exploitation et de maintenance. Dans les systèmes Linux, nous pouvons utiliser des outils de ligne de commande pour l'agrégation de journaux et les statistiques. Ce qui suit présentera plusieurs lignes de commande couramment utilisées
