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のストリーム関連のマニュアルを覗いてたら「登録されたソケットのトランスポートの一覧を取得する」ドンピシャの関数がありました。ありがたや。

関連記事

PHPでComet:フォーカスの当たっていないウィンドウが更新されない... PHPとprototype.jsを使ってAjaxでCometなチャットを作ろうとした。 FireFoxで動作検証していたのだが、ブラウザの複数ウィンドウを立ち上げ、別マシンでもウィンドウを立ち上げて検証していたところ、フォーカスの当たっていない(アクティブでない)ウィンドウでは、TextAre...
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離れしていたのですが、...
PHPでファイルの拡張子を調べる方法 アップロード済みローカル・ファイルのMIMEを調べたい 答え pathinfo()関数で、返ってきた配列の"extension"の値を調べればよろし $sFilePath = "./hogehoge.png"; if(File_Exists($sFilePath))...

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

シェアする

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