>

다음과 같은 내용의 텍스트 파일이 있습니다 :

120MB 130MB 140MB 140MB
10% 20% 30% 40%

파일을 읽고 열을 인쇄하는 PHP 코드가 있습니다.

<?php
$lines = file('test_ssh.txt');
foreach ($lines as $line) {
    $parts = explode(' ', $line);
    echo $parts[2] ;
}
?>

이 코드를 사용하면 필요할 때 첫 번째 행에서 열을 읽을 수 있습니다 (예 : html 테이블의 첫 번째 행에서 첫 번째 열을 열어야하는 경우 $parts [0]).

그러나 열로 두 번째 줄을 읽을 수 없습니다 (즉, 두 번째 행에서 첫 번째 열을 읽으면됩니다), 나는 그것을 할 수 없으며 빈 값을 얻습니다.

행과 열을 개별적으로 읽으려면 2D 배열이 필요합니까? 아니면 더 쉬운 방법이 있습니까? 전문 지식을 도와주세요.


  • 답변 # 1

    첫 줄에서 한 항목 만 인쇄하고 두 번째 줄에서 모든 항목을 인쇄하려는 이유를 잘 모르겠습니다. 그러나 이것이 실제로 당신이 여기에서 어떻게해야하는지 묻는 것이 었습니다.

    <?php
    $lines = file('test_ssh.txt');
    foreach ($lines as $lineNo => $line) {
        $parts = explode(' ', $line);
        if ( $lineNo < 1 ) {
            echo $parts[2] . PHP_EOL;
        } else {
            foreach( $parts as $col ) {  
                echo $col . ' ';
            }
        }
    }
    
    

    결과

    140MB
    10% 20% 30% 40%
    
    

    아래에 댓글을 달고

    이것이 당신이 원하는 것입니까?

    $lines = file('test_ssh.txt');
    foreach ($lines as $line) {
        if ( $line == PHP_EOL ) { continue; } // avoid blank lines causing issues
        $columns = explode(' ', $line);
        echo '<tr>' . PHP_EOL;
        foreach( $columns as $col ) {  
            echo '<td>' . trim($col) . '</td>';
        }
        echo PHP_EOL . '</tr>' . PHP_EOL;
    }
    
    

    결과

    <tr>
    <td>120MB</td><td>130MB</td><td>140MB</td><td>140MB</td>
    </tr>
    <tr>
    <td>10%</td><td>20%</td><td>30%</td><td>40%</td>
    </tr>
    <tr>
    <td></td>
    </tr>
    
    
    와이즈 비즈 와이즈 비즈  테이블 출력에는 출력을 사람이 읽을 수있게 보이도록하기위한 것입니다.

    업데이트 된 질문을 다시 읽었을 때, 이것이 당신이 원하는 것일 수도 있습니다

    ignore the

    결과

    PHP_EOL
    
    

  • 답변 # 2

    이것을 시도하십시오! 첫 번째 줄은 줄마다, 두 번째 줄은 폭발합니다.

    function getColfromBothLines($col, $lines)
    {
        $lin1 = explode(' ', $lines[0]);
        $lin2 = explode(' ', $lines[1]);
        return $lin1[$col] . ' - ' . $lin2[$col];
    }
    $lines = file('test_ssh.txt');
    
    echo getColfromBothLines(0, $lines).PHP_EOL;
    echo getColfromBothLines(1, $lines).PHP_EOL;
    echo getColfromBothLines(2, $lines).PHP_EOL;
    
    

    php 태그를 닫지 마십시오 :)

  • 답변 # 3

    이것을 시도하십시오.

    120MB - 10%
    130MB - 20%
    140MB - 30%
    
    
    <?php $lines = file('test_ssh.txt'); foreach ($lines as $line) { $parts = explode(' ', $line); foreach ($parts as $part) { echo $part; } }

  • 이전 sql - Oracle에서 세부 정보를 검색하기 위해 쿼리를 단순화하는 방법은 무엇입니까?
  • 다음 android - recyclerview 및 retrofit을 사용하여 가져온 데이터가 표시되지 않음