PHP ile nasıl yapmak bir tabloya bir Textfile çıkış bağlantıları ile birlikte

2 Cevap php

Ben bu metin dosyası vardır:

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

Ben Tarih ve Zaman kendi sütununda ve başka Çini ve Bölüm ile bir tabloya çıktı içeriğini gerekir.

Ayrıca .. ben bu şekilde biçimlendirilmiş olması gerekir bir bağlantı ile Başlık ve Bölüm değiştirmeniz gerekir:

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

For clarification the titles in the text file are:

Naruto
Naruto
D Gray Man
Bleach
50 x 50

And the chapters are the numbers that follow:

123
98
001
128
44

2 Cevap

  1. Dosyasını okuyun ve bir diziye her satırı saklayın.
  2. Açık <table> etiketi
  3. Dizi döngü ve regex kullanarak tarih / saat / başlık / bölüm ayıklamak.

İşte başlangıç ​​için regex - Eğer bunu ihtiyaçlarınızı karşılamak için biraz değiştirmek isteyebilirsiniz:

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

Dizideki her öğe için, yazmak uygun <tr> & Ekstre verileri ile doldurulmuş <td> etiketler.

Güncelleme:

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

: Böyle bir şey hile (kod test değil) yapmalıdır

$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>';
}