phpで”Registered Stream Socket Transports”の値を取得する方法

PHPSSL対応かチェックする

この記事は次のブログに引っ越しました。

PHPSSL対応かチェックする 23:36 PHPSSL対応かチェックするを含むブックマーク CommentsAdd Star [PHP Script] ?php //ストリーム可能なソケットのトランスポート一覧 print_r( stream_get_transports() ); //SSL対応かのチェック $a = stream_get_transports(); echo ( in_array('ssl', $a) ) ? "SSL対応" : "SSL非対応"; ? [Result sample] Array ( [0] = tcp [1] = udp [2] = unix [3] = udg [4] = ssl [5] = sslv3 [6] = sslv2 [7] = tls ) SSL対応 PEARのNet_POP3を利用してGmailPOP3でメールを受信するクラスを作る際に、サーバによってSSL("ssl://"型のデータストリーム)が使えるか事前にチェックする必要がありました。 通常は"phpinfo()"で、登録されたソケットの一覧を確認するのですが、クラス内でチェックできるようにしたかったのですが、若干探すのに苦労したので、備忘録として。 経緯 "Registered Stream Socket Transports"の値は、$_SERVER環境変数には入っていません。"getenv()"や"ini_get()"関数も試したのですが、どうにも取得できなかったので、PHP内でShellコマンドを叩いて結果を取得してどうか試してみました。 ?php echo `php -i | grep "Stream Socket"`; //バッククオート注意 ? アッチョンプリケ!このサーバ、セーフモードやんけ。 Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /virtual/xxxx/public_html/test/test.php on line 18 困った(薄い知識に溺れた)時のPHPマニュアルという事で、PHPのストリーム関連のマニュアルを覗いてたら「登録されたソケットのトランスポートの一覧を取得する」ドンピシャの関数がありました。ありがたや。