The examples in this article describe the pure static and pseudo-static usage of PHP page staticization. Share it with everyone for your reference, the details are as follows:
When a user accesses anot frequently updatedWeb page, PHP is instructed to parse the php script file and query the data required for the page from the database , then render the page template, and finally display a finished page to the user. A single request is very simple and fast for the server to handle, but what if thousands of different users request the page at the same time? This is undoubtedly a waste of resources, and this is the purpose of doing static.
Staticization is divided into pure static and pseudo-static, and pure static is divided into partial pure static and total pure static.
Related learning recommendations:PHP programming from entry to proficiency
Pseudo-static, as the name suggests, is not true The static page is disguised. For example, for a web site with PHP as the back-end language, under normal circumstances its URL should be similar tohttp://www.example.com/index.php. When we do pseudo-static processing , when you visit the same page, the URL displayed may behttp://www.example.com/index.html. Its function is to simplify routing and be better indexed by search engines. This method can also be used when you don’t want users to know your back-end language. The routing and redirection knowledge is designed here and will not be explained in detail.
A page usually consists of multiple parts, such as a blog, which may consist of text, categories, friendship It is composed of links, columns and other parts. Partial staticization can be used when some parts are updated frequently and some parts are updated infrequently.
It is easy to understand after reading the previous content. This method is used when all the content of a page is not updated frequently.
The first thing I want to talk about is a thing called a buffer. Let's give a simple example to illustrate its role: when we edit a document, the system will not write to the disk before we save it, but will write it to the buffer. When the buffer is full or a save operation is performed, , the data will be written to the disk. For PHP, every output operation like echo is also written to the php buffer first. The data will not be displayed on the browser until the script is executed or a forced output caching operation is performed.
Here we are going to do something about this buffer. Before php outputs the content, we take out the content of the buffer (here is the rendered template content), and then write it into a static file and set it Expiration time, when the user visits the page next time, if the static file exists and is within the validity period, we will directly display the static file to the user, otherwise we will rewrite the static file.
database connection, using the singleton mode.
Database.php
db = mysqli_connect($options['db_host'], $options['db_user'], $options['db_password'], $options['db_database']); } //负责实例化数据库类,返回实例化后的对象 public static function getInstance($options) { if (!(self::$instance instanceof self)) { self::$instance = new self($options); } return self::$instance; } //获取数据库连接句柄 public function db() { return $this->db; } //禁止克隆 private function __clone() { // TODO: Implement __clone() method. } //禁止重构 private function __wakeup() { // TODO: Implement __wakeup() method. } }
Used for static pages
Cache.php
db(); $sql = "SELECT * FROM pro_test"; $exe_res = mysqli_query($con, $sql); $res = mysqli_fetch_all($exe_res); try{ if (!$res) { throw new Exception("no result"); } }catch (Exception $e) { echo 'Message: ' .$e->getMessage(); } //开启缓存区,这后面的内容都会进缓存区 ob_start(); //引入模板文件(模板会渲染数据) require_once ('templates/index.php'); //取出缓存区内容(在这里是渲染后的模板),将其保存(默认会覆盖原来的)为index.shtml(static html) file_put_contents('shtml/index.shtml', ob_get_contents()); } } } //数据库配置信息 $options = [ 'db_host' => 'mysql', 'db_user' => 'root', 'db_password' => 'localhost', 'db_database' => 'pro_shop', ]; $obj = new Cache(); $obj->index($options);
template/index.php
Browser accesslocalhost/Cache.php
The above is the detailed content of Detailed explanation of pure static and pseudo-static usage of PHP page staticization. For more information, please follow other related articles on the PHP Chinese website!