2

コード行があります

$result = stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);

接続が成功しなかった場合、警告がスローされます

WARNING: stream_socket_client(): Failed to enable crypto

警告を抑制する必要があります。行が見えるように @ を追加

$result = @stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);

助けにならない。PHPは@を無視するようです

ここで何が欠けていますか?

4

2 に答える 2

5

これは良い解決策ではありませんが、しばらくの間警告メッセージを無効にすることができます:

$oldErrorReporting = error_reporting(); // save error reporting level
error_reporting($oldErrorReporting ^ E_WARNING); // disable warnings
$result = stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
error_reporting($oldErrorReporting); // restore error reporting level
于 2013-10-01T12:48:20.117 に答える
1

カスタム エラー ハンドラを使用して解決策を見つけた

set_error_handler(function(){return true;});
stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
restore_error_handler();
于 2013-10-01T13:08:12.763 に答える