1

タブから削除されたテキストファイルをPHP配列のセットに解析しようとしていますが、助けていただければ幸いです。

.txtは次のようになります(スペースではなくタブ区切り)

data1a data1b data1c data1d
data2a data2b data2c data2d
data3a data3b data3c data3d
data4a data4b data4c data4d

等々

PHP配列がこのように見えることを望みます

$arrayA = array('data1a', 'data2a', 'data3a', 'data4a');
$arrayB = array('data1b', 'data2b', 'data3b', 'data4b');
$arrayC = array('data1c', 'data2c', 'data3c', 'data4c');
$arrayD = array('data1d', 'data2d', 'data3d', 'data4d');

そして、単純なhtmlフォームでアップロードされた.txtファイルが必要です。

<form action="form.php" method="post" enctype="multipart/form-data">
  <label for="file">Filename:</label>
  <input type="file" name="file" id="file" /> 
  <input type="submit" name="submit" value="Submit" />
</form>

form.php内に配置するコードに関するアイデアはありますか?

どうもありがとう!

4

2 に答える 2

6

text.txtファイルの内容を検討する

FristLineFirstData FirstLineSecondData FirstLineThirdData
SecondLineFirstData SecondLineSecondData SecondLineThirdData

タブが分離されています。

そしてスクリプト:

<?php
$file = "text.txt";// Your Temp Uploaded file
$handle = fopen($file, "r"); // Make all conditions to avoid errors
$read = file_get_contents($file); //read
$lines = explode("\n", $read);//get
$i= 0;//initialize
foreach($lines as $key => $value){
    $cols[$i] = explode("\t", $value);
    $i++;
}
echo "<pre>";
print_r($cols); //explore results
echo "</pre>";
?>

戻ります

配列
((
    [0]=>配列
        ((
            [0] => FristLineFirstData
            [1] => FirstLineSecondData
            [2] => FirstLineThirdData
        )。

    [1]=>配列
        ((
            [0] => SecondLineFirstData
            [1] => SecondLineSecondData
            [2] => SecondLineThirdData
        )。

)。
于 2012-12-03T18:48:49.513 に答える
0

以下は、問題の最低限の解決策です。

<?php
 $error = false;

 if (isset($_POST) && isset($_POST['submit']) && isset($_FILES) {)
    $file = $_FILES['file'];
    if (file_exists($_FILES['tmp_name'])){
       $handle = fopen($_FILES['tmp_name']);
       $data = fgetcsv($handle, 0, '\t');
    }
    // do your data processing here
    // ...
    // do your processing result display there
    // ...
    // or redirect to another page.
 }
 if ($error) {
   // put some error message here if necessary
 }
 // form display below
 ?>
 <!-- HTML FORM goes here --!>
 <?
 }
 ?>

ファイルデータはすべて同じ配列にグループ化さ$dataれ、ファイル内の対応する行番号でインデックスが付けられます。

見る:

PHPドキュメントのWebサイトにあります。

于 2012-12-03T18:36:07.980 に答える