程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 用PHP腳本自動把純文本文件轉換成Web頁面

用PHP腳本自動把純文本文件轉換成Web頁面

編輯:關於PHP編程

最近,我的一個老朋友向我打電話求助。他從事記者的職業有多年了,最近獲得了重新出版他的很多早期專欄的權利。他希望把他的作品貼在Web上;但是他的專欄都是以純文本文件的形式保存的,而且他既沒有時間也不想去為了把它們轉換成為Web頁面而學習HTML的知識。由於我是他電話本裡唯一一個精通計算機的人,所以他打電話給我看我是否能夠幫幫他。

“讓我來處理吧,”我說:“一個小時以後再給我打電話。”當然了,當他幾個小時以後打電話過來,我已經為他預備好了解決的方法。這需要用到一點點PHP,而我收獲了他沒完沒了的感謝和一箱紅酒。

那麼我在這一個小時裡做了些什麼呢?這就是本篇文章的內容。我將告訴你如何使用PHP來快速將純ASCII文本完美地轉換成為可讀的HTML標記。

首先讓我們來看一個我朋友希望轉換的純文本文件的例子:

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 exploration team indicate a high presence of chlorophyll in the atmosphere. Chlorophyll, 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. Rushel Bunter, the head of ASDA's Mars Colonization Project blah 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/

相當標准的文本:它有一個標題、一個署名和很多段的文字。把這篇文檔轉換成為HTML真正需要做的是使用HTML的分行和分段標記把原文的布局保留在Web頁面上。非凡的標點符號需要被轉換成為對應的HTML符號,超鏈接需要變得可以點擊。

下面的PHP代碼(列表A)就會完成上面所有的任務:

列表A

<?php
// set source file name and path
$source = "toi200686.txt";

// read raw text as array
$raw = file($source) or die("Cannot 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 with <br />
$html = nl2br(htmlspecialchars($data));

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


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved