0

私はこのテキストファイルを持っています:

Dec 04 20:15 Naruto 123
Dec 04 17:42 Naruto 98
Dec 04 16:19 D Gray Man 001
Dec 04 16:05 Bleach 128
Dec 04 12:13 50 x 50 44

日付と時刻を独自の列に、タイルと章を別の列に持つテーブルに内容を出力する必要があります。

また..タイトルとチャプターを、次のようにフォーマットする必要があるリンクに置き換える必要があります。

<a href="/title/title chapter">title chapter</a>

明確にするために、テキスト ファイルのタイトルは次のとおりです。

Naruto
Naruto
D Gray Man
Bleach
50 x 50

章は次の番号です。

123
98
001
128
44
4

2 に答える 2

1

このようなことでうまくいくはずです(コードをテストしていません):

$data = Explode ( "\n", File_Get_Contents ( 'yourfile' ) );

foreach ( $data as $key => $line )
{
    $tmp = Explode ( ' ', $line );
    $month = $tmp[0];
    $day = $tmp[1];
    $time = $tmp[2];
    $numOfEntries = Count ( $tmp );
    $chapter = $tmp[$numOfEntries - 1];

    $title = '';
    for ( $i = 3; $i < $numOfEntries - 1; $i++ )
        $title .= $tmp[$i] . ' ';

    $title = Trim ( $title );

    $link = '<a href="/' . $title . '/' . $title . ' ' . $chapter . '">' . $title . ' ' . $chapter . '</a>';
}
于 2009-12-07T07:27:48.380 に答える
0
  1. ファイルを読み取り、各行を配列に格納します。
  2. <table>タグを開く
  3. 配列をループし、正規表現を使用して日付/時刻/タイトル/チャプターを抽出します。

これが最初の正規表現です。ニーズに合わせて少し変更することをお勧めします。

/^([a-zA-Z]{3}\s\d{2})\s(\d{2}:\d{2})\s(.+?)\s(\d+)\s*?$/
//$1 contains date : "Dec 04"
//$2 contains time : "20:15"
//$3 contains the title : "Naruto"
//$4 contains the chapter : "123"

配列内の各項目に対して、抽出されたデータで満たされた適切な<tr>&タグを記述します。<td>

アップデート:

<?php
$filedata = "Dec 04 20:15 Naruto 123
Dec 04 17:42 Naruto 98
Dec 04 16:19 D Gray Man 001
Dec 04 16:05 Bleach 128
Dec 04 12:13 50 x 50 44";

$lines = explode("\n", $filedata);

echo "<table border=\"1\">";

foreach($lines as $line)
{
    echo "<tr>";
    preg_match("/^([a-zA-Z]{3}\s\d{2}\s\d{2}:\d{2})\s(.+?)\s(\d+)\s*?$/", $line, $matches);
    echo "<td>$matches[1]</td>";
    echo "<td><a href=\"/$matches[2]/$matches[2] $matches[3]\">$matches[2] $matches[3]</a></td>";
    echo "</tr>";
}
echo "</table>"
?>
于 2009-12-07T07:25:11.280 に答える