builtin function

ビルトイン関数 - 詳細

Category: builtin_function

ssl()

★URLをSSLに対応させたURLにする

関数

string ssl (  string $str=null, string $ret=null )
★URLをSSLに対応させたURLにする
パラメータ

第1引数: string $str=null
第2引数: string $ret=null
戻り値

string
説明

本関数の呼び出し時にSSL通信だった場合、渡された文字列をSSL対応のものにして返却する。

背景)
開発の初期段階ではページをSSL化するかどうか不明なことが多かった。
この為、開発途中(あるいはリリース後)にSSL対応させるコードに書き換える必要があった。
これを回避する為、ssl(HTTP_IMG_URL)を使って動的に定数を切り替えるようにしていたが仕込み(*1)も面倒だったしコードが冗長すぎてうざかった。

*1: 定数でHTTP_IMG_URLとHTTPS_IMG_URLを事前に定義。constant()呼び出し前に、変数$HTTPに"HTTP"か"HTTPS"かを動的に代入する。

前提条件)
・overSSL通信時には$_SERVER['HTTPS']="on"が確認できる環境であること。
・http時とhttps時のURLがプロトコル部分を除いて共通であること。この場合は第1引数のみで良い。
ex) http://example.com/aaa?test=1 と https://example.com/aaa?test=1
・URLが共通で無い場合は、SSL通信時に返して欲しい文字列を第2引数で指定しておけば良い。

使い方例)
SSLページになるかもしれないページ(又はその逆)の画像の呼び出しを以下のようにコーディングする。
<img src="<?=ssl(HTTP_IMG_URL)?>/user/background.jpg" alt="" />
或いは、
<img src="<?=ssl(HTTP_IMG_URL, HTTPS_IMG_URL)?>/user/background.jpg" alt="" />

このように記述することでSSL通信でない場合はhttp、SSL通信の場合はhttpsのものが動的に変更できる。

004 - 2012/04/30 xirasaya: notice対策。
003 - 2011/11/22 xirasaya: 第1引数なしでssl通信判定結果を返すように変更。
002 - 2011/11/04 xirasaya:
本関数の前身となるconstant_ssl()は関数名が長すぎたし定数を利用することにこだわり過ぎた…。
これを反省し、関数名をssl()にし、関数内では定数を使わない処理に変更した。
001 - 20xx/xx/xx xirasaya
ソースコード [表示]


[top]