PHP禁用特定文件中的错误?

时间:2017-09-10 06:15:54

标签: php phpseclib

我从ANSI.php获得了数百个。这是一个例子:

/usr/share/pear/File/ANSI.php on line 553 Notice: Undefined offset: 75 in 
/usr/share/pear/File/ANSI.php on line 555 Notice: Undefined offset: 76 in 
/usr/share/pear/File/ANSI.php on line 553 Notice: Undefined offset: 76 in 
/usr/share/pear/File/ANSI.php on line 555 Notice: Undefined offset: 77 in
/usr/share/pear/File/ANSI.php on line 555 Notice: Trying to get property of non-object in
/usr/share/pear/File/ANSI.php on line 496 Notice: Trying to get property of non-object in  

这来自:

$ansi->appendString($ssh->read());

一切正常。我怀疑我正在使用的旧机器给ANSI.php带来了困难。

有没有办法可以禁用ANSI.PHP中的错误消息并保留其他消息?除非有人有办法解决错误。

1 个答案:

答案 0 :(得分:1)

最简单的解决方案(次优)

我想抑制错误的最简单方法是使用错误抑制运算符@。例如

@$ansi->appendString($str);

最佳解决方案(可能)

自最新版本(1.0.7和2.0.6,截至本文)以来,已经有两次提交到phpseclib,修复了File / ANSI.php的问题:

https://github.com/phpseclib/phpseclib/commit/5c792f6bc1fa8a5d26b43fb8200191c073637e15 https://github.com/phpseclib/phpseclib/commit/84d1628cb7734134b1ba80545b38985025942b79

更多信息:

https://github.com/phpseclib/phpseclib/issues/1161 https://github.com/phpseclib/phpseclib/issues/1150

有点让我想知道其中一个可能会为你解决这个问题。

回退到最佳解决方案

如果前面提到的“最佳解决方案”没有为您解决问题,那么在源头修复问题会很好。有什么帮助我做的就是你把它传递给$ansi->appendString()之前得到的数据的副本。为了使字符不会出现乱码,因为它们是扩展的ASCII,可能是十六进制编码。例如。 echo bin2hex($ssh->read());或其他。