Frage

Ich habe diese Textdatei:

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

Ich brauche den Inhalt in eine Tabelle mit dem Datum und Uhrzeit in einer eigenen Spalte und die Fliesen und Kapiteln in einem anderen Ausgang.

Auch .. Ich brauche den Titel und Kapitel mit einem Link zu ersetzen, die auf diese Weise formatiert werden muss:

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

Zur Verdeutlichung werden die Titel in der Textdatei sind:

Naruto
Naruto
D Gray Man
Bleach
50 x 50

Und die Kapitel sind die Zahlen, die folgen:

123
98
001
128
44
War es hilfreich?

Lösung

  1. Lesen Sie die Datei und speichern Sie jede Zeile in einem Array.
  2. Öffnen <table> Tag
  3. Schleife durch das Array und extrahiert das Datum / Zeit / Titel / Kapitel regex.

Hier ist die regex zu beginnen - Sie mögen sich ein wenig ändern, um Ihre Bedürfnisse zu erfüllen:

/^([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"

Für jedes Element im Array, schreibt geeignete <tr> & <td> Tags mit den extrahierten Daten gefüllt.

Update:

<?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>"
?>

Andere Tipps

So etwas sollte es tun (habe den Code nicht getestet):

$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>';
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top