Home  >  Article  >  Backend Development  >  How to generate static pages in php_PHP tutorial

How to generate static pages in php_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:23:00826browse

How to generate static pages in php

1. PHP scripts and dynamic pages.

PHP script is a server-side script program that can be mixed with HTML files through methods such as embedding, or it can process user requests in the form of templates in the form of classes, function encapsulation, etc. One way or another, the basics of it are this. The client makes a request for a certain page -----> The WEB server introduces the designated corresponding script for processing -----> The script is loaded into the server -----> PHP parsing specified by the server The script is parsed by the browser to form an HTML language form----> The parsed HTML statement is sent back to the browser in the form of a package. It is not difficult to see from this that after the page is sent to the browser, PHP no longer exists and has been converted and parsed into HTML statements. The client request is a dynamic file. In fact, there is no real file there. PHP parses it into the corresponding page and then sends it back to the browser. This way of handling pages is called "dynamic pages".

Second, static page.

Static pages refer to pages that actually exist on the server side and only contain HTML and JS, CSS and other client-side scripts. The way it is handled is. The client makes a request for a certain page----> The WEB server confirms and loads a certain page----> The WEB server passes the page back to the browser in the form of a package. From this process, we can compare the dynamic pages and we can see. Dynamic pages need to be parsed by the PHP parser of the WEB server, and usually need to connect to the database and perform database access operations before they can form an HTML language information package; while static pages do not need to be parsed or connected to the database, and can be sent directly, which can greatly Reduce server pressure, improve server load capacity, and greatly improve page opening speed and overall website opening speed. But its disadvantage is that the request cannot be processed dynamically, and the file must actually exist on the server.

3. Templates and template analysis.

The template means that the content html file has not yet been filled in. For example:

 temp.html

Code:[Copy to clipboard]

 

 

 

 this is a { file } file's templets

 

 

PHP processing:

templetest.php

Code:[Copy to clipboard]

 $title = "Tomax International Test Template";

 $file = "TwoMax Inter test templet,
author:Matrix@Two_Max";

 $fp = fopen ("temp.html","r");

 $content = fread ($fp,filesize ("temp.html"));

 $content .= str_replace ("{ file }",$file,$content);

 $content .= str_replace ("{ title }",$title,$content);

echo $content;

 ?>

Template parsing processing is a process in which the results obtained after PHP script parsing and processing are filled (content) into the template. Usually with the help of template classes. Currently, the more popular template parsing classes include phplib, smarty, fastsmarty and so on. The principle of template parsing processing is usually replacement. There are also some programmers who are accustomed to putting judgment, looping and other processing into template files and processing them with parsing classes. The typical application is the block concept, which is simply a loop processing. The PHP script specifies the number of loops, how to loop through, etc., and then the template parsing class implements these operations. 70-305 920-203 920-533

Okay, after comparing the advantages and disadvantages of static pages and dynamic pages, now let’s talk about how to use PHP to generate static files.

PHP generating static pages does not refer to PHP’s dynamic parsing and outputting HTML pages, but refers to using PHP to create HTML pages. At the same time, because of the non-writable nature of HTML, if the HTML we create is modified, it needs to be deleted and regenerated. (Of course, you can also choose to use regular rules to modify it, but I personally think that it is faster than deleting and regenerating it. The gain outweighs the loss.)

Back to business. PHP fans who have used PHP file operation functions know that there is a file operation function fopen in PHP, which opens a file. If the file does not exist, try to create it. This is the theoretical basis on which PHP can be used to create HTML files. As long as the folder used to store HTML files has write permission (ie permission definition 0777), the file can be created. (For UNIX systems, Win systems do not need to be considered.) Taking the above example as an example, if we modify the last sentence and specify to generate a static file named test.html in the test directory: HP0-538 HP0-757

Code:[Copy to clipboard]

 $title = "Tomax International Test Template";

 $file = "TwoMax Inter test templet,
author:Matrix@Two_Max";

 $fp = fopen ("temp.html","r");

 $content = fread ($fp,filesize ("temp.html"));

 $content .= str_replace ("{ file }",$file,$content);

 $content .= str_replace ("{ title }",$title,$content);

// echo $content;

 $filename = "test/test.html";

 $handle = fopen ($filename,"w"); //Open the file pointer and create the file

 /*

Check if the file is created and writable

 */

 if (!is_writable ($filename)){

die ("File: ".$filename." cannot be written, please check its properties and try again!");

 }

 if (!fwrite ($handle,$content)){ //Write information to the file

die ("Generate file".$filename."Failed!");

 }

 fclose ($handle); //Close pointer

die ("Create file".$filename."Success!");

 ?>

Reference for solutions to common problems in practical applications:

1. Article list question:

Create a field in the database and record the file name. Each time a file is generated, the automatically generated file name is stored in the database. For recommended articles, just point to the page in the designated folder where the static files are stored. Use PHP operations to process the article list, save it as a string, and replace this string when generating the page. For example, add the mark {articletable} to the table where the article list is placed on the page, and in the PHP processing file: 000-297 1z0-147

Code:[Copy to clipboard]

 $title = "Tomax International Test Template";

 $file = "TwoMax Inter test templet,
author:Matrix@Two_Max";

 $fp = fopen ("temp.html","r");

 $content = fread ($fp,filesize ("temp.html"));

 $content .= str_replace ("{ file }",$file,$content);

 $content .= str_replace ("{ title }",$title,$content);

// Start generating list

$list = '';

 $sql = "select id,title,filename from article";

 $query = mysql_query ($sql);

while ($result = mysql_fetch_array ($query)){

 $list .= ''.$result['title'].'
';

 }

 $content .= str_replace ("{ articletable }",$list,$content);

//End of generating list

// echo $content;

 $filename = "test/test.html";

 $handle = fopen ($filename,"w"); //Open the file pointer and create the file

 /*

Check if the file is created and writable

 */

 if (!is_writable ($filename)){

die ("File: ".$filename." cannot be written, please check its properties and try again!");

 }

 if (!fwrite ($handle,$content)){ //Write information to the file

die ("Generate file".$filename."Failed!");

 }

 fclose ($handle); //Close pointer

die ("Create file".$filename."Success!");

 ?>

Second, the paging problem.

If we specify pagination, there will be 20 articles per page. There are 45 articles in a certain sub-channel list after database query. First, we obtain the following parameters through query: 1. Total number of pages; 2. Number of articles per page. The second step, for ($i = 0; $i < allpages; $i++), page element acquisition, analysis, and article generation are all executed in this loop. The difference is that the sentence die ("Create file".$filename."Success!"; is removed and placed in the display after the loop, because this statement will abort program execution. Example:

Code:[Copy to clipboard]

 $fp = fopen ("temp.html","r");

 $content = fread ($fp,filesize ("temp.html"));

 $onepage = '20';

 $sql = "select id from article where channel='$channelid'";

 $query = mysql_query ($sql);

 $num = mysql_num_rows ($query);

 $allpages = ceil ($num / $onepage);

 for ($i = 0;$i<$allpages; $i++){

 if ($i == 0){

 $indexpath = "index.html";

 } else {

 $indexpath = "index_".$i."html";

 }

$start = $i * $onepage;

$list = '';

 $sql_for_page = "select name,filename,title from article where channel='$channelid' limit $start,$onepage";

 $query_for_page = mysql_query ($sql_for_page);

while ($result = $query_for_page){

 $list .= ''.$title.'
';

 }

 $content = str_replace ("{ articletable }",$list,$content);

 if (is_file ($indexpath)){

 @unlink ($indexpath); //If the file already exists, delete it

 }

 $handle = fopen ($indexpath,"w"); //Open the file pointer and create the file

 /*

Check if the file is created and writable

 */

 if (!is_writable ($indexpath)){

echo "File: ".$indexpath." cannot be written, please check its properties and try again!"; //Change to echo

 }

 if (!fwrite ($handle,$content)){ //Write information to the file

echo "Generate file".$indexpath."Failed!"; //Change to echo

 }

 fclose ($handle); //Close pointer

 }

 fclose ($fp);

die ("Generating the paging file is completed. If the generation is incomplete, please check the file permission system and regenerate!");

 ?>

The general idea is this. Other data generation, data input and output checking, paging content pointing, etc. can be added to the page as appropriate.

In the actual article system processing process, there are still many issues to be considered. There are many differences from dynamic pages that need to be paid attention to. But the general idea is this, and other aspects can be drawn by analogy.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/845140.htmlTechArticlephp generate static page method 1, PHP script and dynamic page. PHP script is a server-side script program that can be mixed with HTML files through methods such as embedding, or it can be encapsulated in classes, functions, etc...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn