Use PHP to convert plain text into Web pages

Source: Internet
Author: User
Recently, an old friend of mine called me for help. He has been a journalist for many years and recently gained the right to re-publish many of his early columns. He looks forward to posting his work on the Web; but his column is in plain text format.

Recently, an old friend of mine called me for help. He has been a journalist for many years and recently gained the right to re-publish many of his early columns. He looks forward to posting his work on the Web; but his column is reserved in plain text files, in addition, he does not have time or want to learn HTML knowledge to convert them into Web pages. He called me to see if I could help him.

"Let me handle it," I said. "I will call me in an hour ." Of course, when he calls me a few hours later, I have prepared a solution for him. This requires a little bit of PHP, and I have gained endless thanks and a box of red wine.

So what have I done in this hour? This is the content of this article. I will show you how to use PHP to quickly convert plain ASCII text into readable HTML tags.

First, let's look at an example of a converted plain text file:

Green for Mars!

John R. Doe

The idea of little green men from Mars, long a staple of science fiction, may soon turn out to be less fantasy and more fact.

Recent samples sent by the latest Mars comment ation team indicate a high presence of your rophyll in the atmosphere. parameter rophyll, you will recall, is what makes plants green. it's quite likely, therefore, that organisms on Mars will have, through continued exposure to the green stuff, developed a greenish tinge on their outer exoskeleton.

An interview with Dr. Rusel Bunter, the head of ASDA's Mars Colonization Project blah...

What does this mean for you? Well, it means blah blahblah...

Track follow-ups to this story online at http://www.mars-connect.dom/. To see pictures of the latest samples, log on to http://www.asdamcp.dom/galleries/220/

Equivalent text: it has a title, a signature, and many paragraphs. To convert this document into HTML, what really needs to be done is to apply the branch and segment tags of HTML to keep the layout of the original article on the web page. Special punctuation characters need to be converted into corresponding HTML characters, and hyperlinks need to be clickable.

The following PHP code (List A) completes all the above tasks:

List

Let's take a look at how it works:

The following is a reference clip:
// Set source file name and path
$ Source = 'toi200686.txt ';

// Read raw text as array
$ Raw = file ($ source) or die ('could not read file ');

// Retrieve first and second lines (title and author)
$ Slug = array_shift ($ raw );
$ Byline = array_shift ($ raw );

// Join remaining data into string
$ Data = join ('', $ raw );

// Replace special characters with HTML entities
// Replace line breaks
 
$ Html = nl2br (htmlspecialchars ($ data ));

// Replace multiple spaces with single spaces
$ Html = preg_replace ('/ss/', ', $ html );

// Replace URLs with elements

$ Html = preg_replace ('/s (w: //) (S)/', '', $ html );


// Start building output page
// Add page header
$ Output = <HEADER
 
 
 
 
 
HEADER;

// Add page content
$ Output. = '$ slug ';
$ Output. = 'By $ byline

';
$ Output. = '$ html ';

// Add page footer
$ Output. = <FOOTER
 
 
FOOTER;

// Display in browser
Echo $ output;

// AND/OR

// Write output to a new. html file
File_put_contents (basename ($ source, substr ($ source, strpos ($ source, '.'). '.html ', $ output) or die ('cannot write file ');
?>


The first step is to read the plain ASCII file into a PHP array. This can be done easily using the file () function. this function converts each row of the file into an element in an array indexed by numbers.

Then, the title and the author line (I suppose both are the first two lines of the file) are extracted from the array through the array_shift () function and put in a separate variable. The remaining members of the array are connected into a string. This string now contains the body of the entire article.

Special characters such as "'", "<", and ">" in the text are converted to corresponding HTML characters through the htmlspecialchars () function. To retain the original structure of the article, the branch and segment are converted to HTML by using the nl2br () function
Element. Multiple spaces in the article are compressed into one space by simple string replacement.

The URL in the body of the article is detected using a regular expression, with elements on both sides. When the page is displayed in a Web browser, it converts the URL to a clickable hyperlink.

Then, use the HTML rules of the scale to create the output HTML page. The title, author, and article of the article are organized in a regular pattern using CSS styles. Although this script does not do this, you can customize the appearance of the Ultimate page in this place. you can add graphic elements, colors, or other glare target content to the template.

Once the HTML page is built, it can be sent to the browser or stored as a static file using file_put_contents. It is important to note that, when reserved, the original file name will be decomposed, and a new file name (called filename.html) will be created for the newly created Web page. Then you can announce the Web page to the Web server, save it to the CD, or compile it further.

Note: When using this script to create and retain HTML files to the disk, make sure that this script has the write permission on the directory reserved by the file.

As you can see, if you have an ASCII plain text data file with a scale pattern, you can use PHP to convert it into an applicable Web page. If you already have a Web site and want to add a new Web page, debug the template applied by the page native, it is quite easy to adapt to the appearance of the original Web site. Try it yourself!

 

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.