PHP отключить ошибку из конкретного файла?
Я получаю сотни из 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 ответ
Самое простое решение (неоптимальное)
Я предполагаю, что самый простой способ подавления ошибок - использовать оператор подавления ошибок. @
, например.
@$ansi->appendString($str);
Оптимальное решение (возможно)
Со времени последнего выпуска (1.0.7 и 2.0.6, на момент публикации) было два коммита в phpseclib, которые исправляли проблемы с файлом / 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());
или что-то.