PHP 禁用来自特定文件的错误?

PHP disable error from specific file?

我从 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 的错误消息并保留其他消息?除非有人有办法修复错误。

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

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

@$ansi->appendString($str);

最优解(可能)

自最新版本(1.0.7 和 2.0.6,截至 post)以来,已对 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

有点让我想知道其中之一是否可以为您解决问题。

回退到最优解

如果前面提到的 "optimal solution" 不能为您解决问题,那么最好从源头上解决问题。在将数据传递给 $ansi->appendString() 之前获得的数据的副本可以帮助我做到这一点。为了使字符不会出现乱码,因为它们是扩展的 ASCII,可能是十六进制编码。例如。 echo bin2hex($ssh->read()); 什么的。