PHPスクリプトに奇妙な動作があります。なんらかの理由で、特定の行の後にエコーを作成できません。
include 'class/core.class.php';
include 'class/tp.class.php';
$tps = new tps;
$system = $_GET['system'];
$file = @fopen(getcwd() . "/csv/" . $system . ".csv", "r");
if(!$file) {
echo "No data in " . getcwd() . "/csv";
exit;
}
$tps->dropSystemData($system);
$counter = 0;
$data = array();
while($csv = fgetcsv($file, 0, ";")) {
$data[$counter]['date'] = $csv[0];
$data[$counter]['time'] = $csv[1];
$data[$counter]['tp'] = $csv[2];
$counter++;
}
foreach($data as $row) {
$date = explode(".", $row['date']);
echo 1; // Works
$date = $date[2] . "/" . $date[1] . "/" . $date[0];
echo 2; // Works
$time = $row['time'];
echo 3; // Works
$tp = $row['tp'];
echo 4; // Doesn't work
echo $tp; // Doesn't work
var_dump($tp); // Doesn't work
var_dump($data); // This doesn't output anything like the echos and var_dumps before
}
特別な理由はわかりません。なぜこれが機能しないのか。エラーはまったくありません。
のVar_dump$data
array(445) {
[0]=>
array(3) {
["date"]=>
string(10) "03.01.2012"
["time"]=>
string(8) "12:30:06"
["tp"]=>
string(10) "EN1K945540"
}
[1]=>
array(3) {
["date"]=>
string(10) "04.01.2012"
["time"]=>
string(8) "12:30:07"
["tp"]=>
string(10) "EN1K945588"
}
[2]=>
array(3) {
["date"]=>
string(10) "04.01.2012"
["time"]=>
string(8) "12:30:09"
["tp"]=>
string(10) "EN1K945592"
}
[3]=>
array(3) {
["date"]=>
string(10) "04.01.2012"
["time"]=>
string(8) "12:30:09"
["tp"]=>
string(10) "EN1K945594"
}
最初に以下を追加しましたが、エラーや警告はありません。
error_reporting(E_ALL);
ini_set('display_errors', '1');
更新:変数名を変更しましたが、それでも機能しません。
更新2:私の悪い、いくつかのキャッシュの問題、ブラウザを閉じて開いたところ、動作しています。変数名が重複しているため、問題が発生しました。