Maison développement back-end tutoriel php PHP中批量生成静态html(命令行下运行PHP)_PHP

PHP中批量生成静态html(命令行下运行PHP)_PHP

Jun 01, 2016 am 11:54 AM
命令行

众所周知,大部分网站的新闻资讯或商品信息都是静态页面。这样做的好处主要是为了: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 为例) 
PHP中批量生成静态html(命令行下运行PHP)_PHP       
运行完毕截图: 

PHP中批量生成静态html(命令行下运行PHP)_PHP

运行2分钟左右就可以生成 9000多 html。

来自Lee.的专栏 转载注明出处!!!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Activer le mode faible consommation sur Mac via la ligne de commande Activer le mode faible consommation sur Mac via la ligne de commande Apr 14, 2023 pm 12:13 PM

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.

Apprenez à utiliser efficacement l'outil de ligne de commande sxstrace.exe Apprenez à utiliser efficacement l'outil de ligne de commande sxstrace.exe Jan 04, 2024 pm 08:47 PM

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 →

Commandes et raccourcis courants dans les systèmes Linux Commandes et raccourcis courants dans les systèmes Linux Jun 18, 2023 am 08:46 AM

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.

Mettre à niveau Ubuntu 20.04 vers 22.04 via la ligne de commande Mettre à niveau Ubuntu 20.04 vers 22.04 via la ligne de commande Mar 20, 2024 pm 01:25 PM

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 : $

Explication détaillée des paramètres de ligne de commande Python Explication détaillée des paramètres de ligne de commande Python Dec 18, 2023 pm 04:13 PM

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.

Un premier aperçu de Django : créez votre premier projet Django en utilisant la ligne de commande Un premier aperçu de Django : créez votre premier projet Django en utilisant la ligne de commande Feb 19, 2024 am 09:56 AM

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

Comment utiliser MySQL et C++ pour développer un système de gestion de bibliothèque basé sur la ligne de commande Comment utiliser MySQL et C++ pour développer un système de gestion de bibliothèque basé sur la ligne de commande Sep 20, 2023 pm 01:48 PM

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 ? Comment effectuer l'agrégation de journaux et les statistiques via les outils de ligne de commande Linux ? Jul 30, 2023 pm 10:07 PM

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

See all articles