PHPでSSL対応かチェックする

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

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

[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を利用してGmailにPOP3でメールを受信するクラスを作る際に、サーバによって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のストリーム関連のマニュアルを覗いてたら「登録されたソケットのトランスポートの一覧を取得する」ドンピシャの関数がありました。ありがたや。

関連記事

「T_ENCAPSED_AND_WHITESPACE」エラー時に注意すべき点... 「T_ENCAPSED_AND_WHITESPACE」の原因がわからない よくある原因 ヒアドキュメントの宣言"<<<"の前にスペースが入っていなかった! ヒアドキュメント内に配列を使ってて"{}"でくくることを忘れてた! 括弧を閉じ忘れてた!(だいたい...
PHPの配列でキーを再採番する方法 PHPの配列で歯抜けになったキーを再採番する方法 PHPでarray_uniqueなどの配列用関数を使うと、配列のキー(添字、要素名)が、連想配列でなく数値の場合、バラバラになる(連番にならない)ことがある。 これを、ちゃんと連番にしたい。いい方法はないか。 結論 sortをかます。...
xrea.comサーバにPEARをインストールする方法... Monoar / Pixabay CGIモードでgo-pear.phpを実行 xrea.comで、PEARのWEBインストーラーであるgo-pear.phpを使ってインストールしたかったのですが、何度試してもtempフォルダの権限が変わってしまい、エラーになってしまいます。 結論...
私のGeeklogのMVC的使い方(WebAPI化) GeeklogをWEBサービス的にAPI化する 2013/09/11 追記:5年半前の記事ですっかり放置していたのですが、なんと恐れ多くもGeeklogのivyweさんからコメントをいただきました。m(_ _;)m ガクガクブルブル すっかりKEINOSはGeeklog離れしていたのですが、...

スポンサーリンク
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク
レクタングル(大)広告