문제

이 텍스트 파일이 있습니다.

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
도움이 되었습니까?

해결책

  1. 파일을 읽고 각 줄을 배열에 저장하십시오.
  2. 열려 있는 <table> 꼬리표
  3. 배열을 반복하고 Regex를 사용하여 날짜/시간/제목/챕터를 추출하십시오.

다음은 다시 시작해야 할 정규식입니다. 귀하의 요구를 충족시키기 위해 조금 수정할 수 있습니다.

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

다른 팁

이와 같은 일은 트릭을 수행해야합니다 (코드를 테스트하지 않은) :

$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>';
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top