2016-11-08 14 views
0

テキストファイルからデータを読み込むコードを記述しました。テキストファイルから多次元配列へのPHPデータは機能しませんが、コンソールエラーは発生しません。

11:12:12:試験TITEL 1
12:13:13:試験TITEL 2
13:14:14:試験TITEL 3

次のコード
データは次のようになり日付を読み取り、1行ごとに1つの文字列を分割し、1つの配列に格納します。これは完全に機能します。 この後、配列内にある文字列に各行を再配置し、これらの配列はすべて1つの多次元配列に格納されます。 この最後の部分はうまくいきません... エラーの代わりに、ページの半分が空白のページを表示するのは奇妙だと思います... また、私はコメントにコードを入れてみました。私は少しそれを絞り込んだ。私は皆さんにコメントのあるコードを渡しますが、コメントはすべて消えてしまいます。感謝! ありがとう!

<?php 
 
$filename = "data.txt"; 
 
$fp = fopen($filename, "r"); 
 
$content = fread($fp, filesize($filename)); 
 
$lines = explode("\n", $content); 
 
$parts = null; 
 
fclose($fp); 
 
print_r($lines); 
 
echo sizeof($lines); 
 
for ($i=0; $i < sizeof($lines)-1 ; $i++) { //the minus 1 corrects the empty line automatically added when saving the data.txt file 
 
    //$tempParts[] = explode(":", $lines[i]); 
 
    //array_push($parts, $tempParts); 
 
} 
 
//echo "<br/>" 
 
echo "all parts: " 
 
//for ($row=0; $row < sizeof($lines)-1; $row++) { 
 
// for ($col=0; $col < sizeof($parts[$row]); $col++) { 
 
//echo $parts[$row][$col]; 
 
// } 
 
//} 
 
?>

答えて

0

私はpreg_splitはあなたがやりたいと思います。

$filename = "data.txt"; 
$fp = fopen($filename, "r"); 
$content = fread($fp, filesize($filename)); 

//$content = "11:12:12:test titel 1 
      12:13:13:test titel 2 
      13:14:14:test titel 3"; 

$arr = preg_split("/(:|\n)/" ,$content); 


var_dump($arr); 

こちらをご覧ください:http://www.phpliveregex.com/p/hNH
を、それはたぶん、これがあなたのために良い作品

を動作させるために、画面の右側にpreg_splitをクリック!

preg_match_all("/(\d+):(\d+):(\d+):(.*)/", $content, $arr); 

クリックしてpreg_match_all:
http://www.phpliveregex.com/p/hNW

+0

私は1次元配列を取得この方法で、それは次のように動作するはずです!ありがとう!ニースウェブサイトbtw! –

+0

@ pieter-jangoeman私は代わりにpreg_match_allで自分の答えを更新しました。 – Andreas

+0

これはどうやっていいですか? –

0

は、私はあなたが望むものを正確に理解することはよく分からないが、あなたはこれを試すことができます。

if (!$fp = fopen("data.txt","r")) { 
    die("fail to open"); 
}else { 
    $all = array(); 
    $row = 1; 
    while(!feof($fp)) { // foreach line 
     $ligne = fgets($fp,255); // get line content 
     $cols = explode(':', $line); // gets cols 
     $all[$row++] = $cols; // put cols on current row 
    }  
    var_dump($all); // dump all data stored by row 
    fclose($fp); 
} 
関連する問題