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 [url]http://www.mars-connect.dom/.[/url] To see pictures of the latest samples, log on to [url]http://www.asdamcp.dom/galleries/220/[/url]
かなり標準的なテキスト:タイトル、署名、多くのセグメントの文字があります.このドキュメントをHTMLに変換するには、HTMLの支店やセグメントタグを使って原文のレイアウトをWebページに残す必要があります.特殊な句読点は対応するHTML記号に変換される必要があり、ハイパーリンクはクリック可能になる必要がある.
次のPHPコード(リストA)は、上記のすべてのタスクを完了します.
リストA
どのように機能しているかを見てみましょう.

       
       
       
       

// 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


$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 .= "
";

$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");

?>

最初のステップは、純粋なASCIIファイルをPHP配列に読み込むことです.これはfile()関数で簡単にできます.この関数はファイルの各行をデジタルインデックスの配列の要素に変換します.
そして、タイトルと作者行(両方ともファイルの最初の2行だと仮定します)はarray_を通ります.shift()関数は配列から抽出され,個別の変数に格納される.配列の残りのメンバーは、文字列に接続されます.この文字列には、文章全体の本文が含まれています.
文章の本文では、「'」、「<」および「>」のような特殊な記号がhtmlspecialchars()関数を介して対応するHTML記号に変換されます.文章の元のフォーマットを保持するために、nl 2 br()関数によって支店とセグメントがHTMLの要素に変換されます.文章の中の複数のスペースは、簡単な文字列置換によって1つのスペースに圧縮されます.
文章の本文のURLは正規表現で検出され、両側は要素です.ページがWebブラウザに表示されると、URLがクリック可能なハイパーリンクに変換されます.
標準のHTMLルールで出力されるHTMLページを作成します.記事のタイトル、作成者、本文はCSSスタイル規則でフォーマットされています.このスクリプトはそうではありませんが、この場所で最終ページの外観をカスタマイズできます.テンプレートにグラフィック要素、色、または他のまぶしい内容を追加できます.
HTMLページの構築が完了すると、ブラウザに送られたりfileを使ったりすることができます.put_contents()は静的ファイルとして保存されます.保存すると元のファイル名が分解され、新しいファイル名(filename.htmlと呼ばれます)が新しく作成されたWebページが作成されます.このWebページをWebサーバに公開したり、ディスクに保存したり、さらに編集したりすることができます.
注:このスクリプトを使用してHTMLファイルをディスクに作成および保存する場合は、このスクリプトがファイルに保存されているディレクトリに書き込み権限を持っていることを確認します.
ご覧のように、標準フォーマットのASCII純テキストデータファイルがあれば、PHPで使用可能なWebページに変換することができます.すでにWebサイトを持っていて、新しいWebページを追加する計画がある場合は、ページジェネレータが使用するテンプレートをデバッグして、既存のWebサイトの外観に適応させるのは簡単です.自分でやってみろ!