我正在写一个小问题解析器。它并不严肃,但这并不意味着我想失败它。
如果我运行我的代码,我不会收到任何错误。因为我已经尝试设置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);
?>
有人能帮助我吗?
答案 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);