dispDesc ($unit); $cur_domain = $this->_getCurDomain ($url, $unit); $new_domain = $this->_getNewDomain ($cur_domain, $env, $unit); $new_url = str_replace ($cur_domain['real'], $new_domain, $url); if ($debug) { echo $new_url; } else { header ("Location: $new_url"); } exit; } /** * 現在のドメインを取得し、実際のものと作業用のものを配列で返す **/ function _getCurDomain ($url, $unit) { preg_match ("/^(http:\/\/|https:\/\/)?([^\/]+)\//i", $url, $matches); $retArr['real'] = $matches[2]; // 他人のユニット環境からやるとエラーになるので、hoge(default)に書き換える $retArr['tmp'] = preg_replace ("/(.+-unit-)([^\.]+)\.(.+)/i", "\\1hoge.\\3", $matches[2]); return $retArr; } /** * 新しいドメインを取得して返す **/ function _getNewDomain ($cur_domain, $env, $unit) { // サーバ情報を取得 $file = dirname(__FILE__)."/env.ini"; $svrs = parse_ini_file ($file, true); // どのサーバか if (is_array($svrs)) { foreach ($svrs as $key => $val) { if ($cur_svr = array_search ($cur_domain['tmp'], $val)) break; } } else { die ("設定ファイルの取得に失敗しました"); } if (!$cur_svr) die ("そこからは無理デス"); // 新しい環境を取得 $env = "svr_".$env; $ret = $svrs[$env][$cur_svr]; if (!$ret) die ("そんな環境知りません"); $ret = str_replace ("-unit-hoge","-unit-{$unit}", $ret); return $ret; } /** * 説明文・ブックマークレットジェネレータを表示 **/ function dispDesc ($unit) { print << 環境変更用 Bookmarklet の説明

開発環境変更ツール - env_changer

EOF; echo "

{$unit}用の Bookmarklet です。{$unit}を変更したい場合は、下のフォームをご利用ください。

"; print << unit :

ex. /env_changer.php?unit=hoge

以下を Bookmark / お気に入りに追加して使ってください。 Firefox, Netscape ではリンクを Bookmark にドラッグ & ドロップすれば簡単に追加できます。 または、もしくは IE な人は、リンクを右クリックしたコンテキストメニューの 「このリンクをブックマーク / お気に入りに追加」から追加してください。