在某行之后无法回声


Can't echo after certain line

我的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
}

我看不出任何特别的原因,为什么这不应该奏效。完全没有错误。

$data Var_dump

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:我的坏,一些缓存问题,现在关闭并打开浏览器,现在它正在工作。重复的变量名称导致了问题。

$tp = new tp;并断言$tp tp类的实例

相反,进入循环,你给它分配了一个String,这会把所有的事情都搞砸。

你在浏览器中吗?你的$row['tp'];包含无效的 HTML 代码或角括号?它们可能被解释为 HTML 标记,因此不会显示任何代码。签入 HTML/源代码...