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

<?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);

// replace URLs with <a href...> elements
$html = preg_replace('/s(w+://)(S+)/', ' <a href="" target="_blank"></a>', $html);

// start building output page
// add page header
$output =<<< HEADER
<html>
<head>
<style>
.slug {font-size: 15pt; font-weight: bold}
.byline { font-style: italic }
</style>
</head>
<body>
HEADER;

// add page content
$output .= "<div class='slug'>$slug</div>";
$output .= "<div class='byline'>By $byline</div><p />";
$output .= "<div>$html</div>";

// add page footer
$output .=<<< FOOTER
</body>
</html>
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");
?>



  第一步是把純ASCII文件讀取到一個PHP數組裏。這通過file()函數很容易就可以完成,這個函數會把文件的每一行都轉換成爲一個用數字索引的數組中的元素。

  然後,標題和作者行(我假設這兩個都是文件的前兩行)都通過array_shift()函數從數組裏提取出來,放到單獨的變量裏。數組剩下的成員然後被連接成一個字符串。這個字符串現在就包括了整篇文章的正文。

  文章正文裏像“'”、“<”和“>”這樣的特殊符號通過htmlspecialchars()函數被轉換成相應的HTML符號。爲了保留文章的原始格式,分行和分段通過nl2br()函數被轉換成HTML的
元素。文章中間多個空格通過簡單的字符串替換被壓縮成爲一個空格。

  文章正文裏的URL用正則表達式來檢測,兩邊是元素。當頁面在Web瀏覽器裏顯示的時候,它會把URL轉換成爲可點擊的超鏈接。

  然後用標準的HTML規則創建輸出的HTML頁面。文章的標題、作者和正文都用CSS樣式規則格式化。儘管這段腳本沒有這樣做,但是你可以在這個地方自定義最終頁面的外觀,你可以向模板添加圖形元素、顏色或者其他眩目的內容。

  一旦HTML頁面構建完成,它就可以被送到瀏覽器或者用file_put_contents()保存爲靜態文件。要注意的是,在保存的時候,原來的文件名會被分解,一個新的文件名(叫做filename.html)會爲新創建的Web頁面創建。你然後就可以把這個Web頁面發佈到Web服務器上、保存到光盤上或者對它進行進一步編輯。

  注意:在使用這個腳本創建和保存HTML文件到磁盤的時候,你要確保這個腳本對文件保存的目錄有寫權限。

  正如你看到的,假如你有標準格式的ASCII純文本數據文件,你可以相當迅速用PHP把它轉換成爲可使用的Web頁面。如果你已經有了一個 Web網站,並計劃把新的Web頁面加入進來,那麼調試頁面生成器所使用的模板,使之適應原有Web網站的外觀是相當容易的。你自己試試看!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章