最近、私の古い友人が私に助けを求めて電話してきました。彼は長年ジャーナリストとして活動しており、最近、初期のコラムの多くを再出版する権利を獲得しました。彼は自分の作品を Web に投稿したいと考えていましたが、コラムはプレーン テキスト ファイルとして保存されており、それを Web ページに変換するために HTML を学ぶ時間も意欲もありませんでした。彼の電話帳の中でコンピューターに詳しいのは私だけだったので、彼は私に電話して、私に手伝ってもらえるかどうか尋ねました。
「私に任せてください。1 時間以内に電話してください。」 もちろん、数時間後に彼が電話してきたとき、私はすでに解決策を用意していました。少しの PHP の知識が必要でしたが、彼からは限りない感謝と赤ワイン 1 ケースを受け取りました。
それで、私はこの時間に何をしましたか?それがこの記事の内容です。 PHP を使用して、プレーン ASCII テキストを読み取り可能な HTML マークアップに迅速かつ完全に変換する方法を説明します。
まず、私の友人が変換したいプレーンテキストファイルの例を見てみましょう:
Green for Mars!
John R. Doe
長い間 SF の定番であった、火星から来た小さな緑の男のアイデアは、間もなく空想ではなく、より事実であることが判明するかもしれません。
最新の火星探査チームによって送られた最近のサンプルは、大気中にクロロフィルが大量に存在することを示しています。クロロフィルが植物を緑色にしている可能性が非常に高いです。したがって、火星の生物は、緑色のものにさらされ続けることで、外骨格に緑がかった色合いを帯びることになります。
ASDA の火星植民プロジェクトの責任者、ラシェル・バンター博士へのインタビューです...
これはあなたにとって何を意味しますか? まあ、それはまあまあということです...
この記事のフォローアップをオンラインで追跡するには、http://www.mars-connect.dom/ にログオンしてください。 http://www.asdamcp.dom/galleries/220/
かなり標準的なテキストです。タイトル、署名欄、および多くの段落のテキストが含まれています。このドキュメントを HTML に変換するために実際に行う必要があるのは、HTML の改行タグと段落タグを使用して、Web ページ上の元のテキストのレイアウトを保持することです。特別な句読点は対応する HTML シンボルに変換する必要があり、ハイパーリンクはクリック可能にする必要があります。
次の PHP コード (リスト A) は、上記のタスクをすべて完了します:
リスト A
// ソース ファイル名とパスを設定します
$source = "toi200686.txt";
/ /生のテキストを array として読み取ります
$raw = file($source) または die("Cannot read file");
// 1 行目と 2 行目 (タイトルと作成者) を取得します
$slug = array_shift($raw);
$ byline = array_shift($raw);
// 残りのデータを文字列に結合します
$data = join('', $raw);
// 特殊文字を HTML エンティティに置き換えます
// 改行を < に置き換えます/>
$html = nl2br(htmlspecialchars($data));
// 複数のスペースを単一のスペースに置き換えます
$html = preg_replace('/ss /', ' ', $html);