0

file_get_contents() を使用してテキスト ファイルをインポートしています。テキスト ファイルでは、次のような形式になります (例)。

3434,83
​​,8732722 834,93,4983293
9438,43933,34983

など...基本的には次のパターンに従います:整数、それを分割するコンマ、2番目の整数、それを分割する別のコンマ、3番目の整数、そして新しい行が始まります。これを、それに応じて次の形式のテーブルに入れる必要があります。つまり、3 列のテーブルがあり、テキスト ファイルの新しい行はテーブルの新しい行になります。

これは、<table> <tr> および <td> を使用して単純な html テーブルにトランスコードする必要があります。

私は多次元配列を使ってテキストを分割したことはありません。これが私が助けを求めている理由です。ほんとうにありがとう!:)

4

3 に答える 3

1

あなたは以下を行うことができます:

$filename = 'abc.txt';
$content = file_get_contents($filename);
$explodedByBr = explode('<br/>', $content);
$table = "<table border='1'>";
foreach ($explodedByBr as $brExplode) {
  $explodedByComma = explode(',', $brExplode);

  $table .= "<tr>";
  foreach ($explodedByComma as $commaExploded) {
    $table .= "<td>" .$commaExploded. "</td>";
  }
  $table .= "<tr/>";
}
$table .= "</table>";

echo $table;

abc.txtには、次の形式のデータがあります。

3434,83
​​,8732722 834,93,4983293
9438,43933,34983

于 2012-08-06T07:56:12.110 に答える
0

これを試して:

ファイルを配列に読み取り、配列の各行を に渡して処理することで列化しますarray_walk

<?php
function addElements( &$v, $k ) {
    $v1 = explode( ',', $v ); // break it into array
    $v2 = '';
    foreach( $v1 as $element ) {
        $v2 .= '<td>'.$element.'</td>';
            // convert each comma separated value into a column
    }
    $v = '<tr>'.$v2.'</tr>'; // add these columns to a row and return
}

// read the whole file into an array using php's file method.
$file = file( '1.txt' );
// now parse each line of the array so that we convert each line into 3 columns.
// For this, i use array_walk function which calls a function, addElements, 
// in this case to process each element in the array.
array_walk( $file, 'addElements' );
?>
<html>
     <head></head>
     <body>
         <table border="0">
             <?php echo implode('',$file);?>
         </table>
     </body>
</html>

それが役に立てば幸い。fileおよびの php ドキュメントを参照してくださいarray_walk。シンプルで便利な機能です。

于 2012-08-06T07:30:58.620 に答える
0
<?php
    $file = 'path/to/file.txt';
    echo '<table>';
    while(!feof($file)) {
        $line = fgets($file);

        echo '<tr><td>' . implode('</td><td>',explode(',',$line)) . '</td></tr>';
    }
    echo '</table>';
?>
于 2012-08-06T07:28:39.417 に答える