我从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中的错误消息并保留其他消息?除非有人有办法解决错误。
答案 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());
或其他。