我启用了显示错误,但我仍然没有收到错误

时间:2015-05-16 09:01:30

标签: php parsing

我正在写一个小问题解析器。它并不严肃,但这并不意味着我想失败它。

如果我运行我的代码,我不会收到任何错误。因为我已经尝试设置error_reporting等等。在我的代码的开头是下面的行:

error_reporting(E_ALL);
ini_set('display_errors', 1);

但如果我运行代码我没有得到任何输出。 (我只是尝试在第一行添加“echo'hi';

这是我的代码:

<?php

echo "hi";

error_reporting(E_ALL);
ini_set('display_errors', 1);

$toParse = '<<IF [2] > [3] FI>>';

$toParse = str_ireplace(" ", "", $toParse);
$toParse = str_ireplace("<<", "", $toParse);
$toParse = str_ireplace(">>", "", $toParse);

$toParse = str_ireplace("IF", "", $toParse, $if_1);
$toParse = str_ireplace("FI", "", $toParse, $if_2);

if($if_1 > 0 && $if_2 > 0) {
    $toParse = str_ireplace(">", "", $toParse, $gt);
    $toParse = str_ireplace("<", "", $toParse, $lt);
    $toParse = str_ireplace("==", "", $toParse, $eq);

    if($gt == 1 && $lt != 1 && $eq != 1) {
        $toParse = explode("][", $toParse);
        var_dump($toParse);
        if(count($toParse) > 2 || count($toParse) < 2) die ("Syntax Error!");
        for($i=0; i<count($toParse); i++) {
            $toParse[i] = str_ireplace("[", "", $toParse[i]);
            $toParse[i] = str_ireplace("]", "", $toParse[i]);
        }

        if($toParse[0] > $toParse[1])
            echo "1";
        else
            echo "0";
    }
    else if($gt != 1 && $lt == 1 && $eq != 1) {
        // coming soon
    }
    else if($gt != 1 && $lt != 1 && $eq == 1) {
        // coming soon
    }
    else
        die "Syntax Error!";


} else if($if_1 > 0) die "Syntax Error!";
else if($if_2 > 0) die "Syntax Error!";

echo htmlspecialchars($toParse);

?>

有人能帮助我吗?

2 个答案:

答案 0 :(得分:3)

要获得解析错误,我会推荐这个。

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

否则,您需要更改实际的服务器配置,以便启用display_errors。

答案 1 :(得分:1)

以下PHP语句的反向流顺序,请参阅。

自:

error_reporting(E_ALL);
ini_set('display_errors', 1);

要:

ini_set('display_errors', 1);
error_reporting(E_ALL);