fc2ブログ

奇特なブログ

「殊勝に値する行いや心掛け」を意味する、奇特な人になる為のブログです

自作フレームワーク:config.php

注意:
本プログラムは、
いわゆる徳丸本に書かれているセキュリティ対策の多くは反映してます。
しかし、高難易度の攻撃に耐えられる程の対策は出来ていないと思います。
本プログラムの流用は自由ですが、流用によって生じた損害については、
自己責任でお願いしてますので、その旨ご了承下さい。


自作フレームワークのトップページに戻る




/**
* 設定ファイル管理クラス
*
* 設定ファイル内の値の設定や値の取得を行うクラス
*
* @access public
* @create 2010/08/12
* @version 1.0
*/
class config
{

/**
* コンストラクタ
*
* @access public
*/
public function __construct()
{
$this->list = array();
}

/**
* アプリケーションベースディレクトリのパス設定
*
* @access public
* @param string $base_path アプリケーションベースディレクトリのパス
*/
public function set_base_path($base_path)
{
$this->base_path = $base_path;
}

/**
* アプリケーションベースディレクトリのパス取得
*
* @access public
* @return string アプリケーションベースディレクトリのパス
*/
public function get_base_path()
{
return $this->base_path;
}

/**
* 設定値を検索して取得
*
* @access public
* @param string $name 設定値のキー
* @return string 設定値
*/
public function search($name)
{
// nameがキーになっている値を返す
return $this->list[$name];
}

/**
* 設定ファイルをパースして値をセットする
*
* @access public
* @param string $file_name 設定ファイル名
*/
public function set_config_data($file_name)
{
// ファイル内の情報を配列に格納
$lines = file($file_name);

foreach ($lines as $line)
{
$temp_list = array();

// 前後の空白削除
$line = trim($line);

// 空行は処理省略
if (0 === strcmp('', $line))
{
continue;
}

// コメント行も処理省略
// 優先度低:#の方が良いのでは?
if (0 === strcmp('/', $line[0]))
{
continue;
}

// 先頭文字が=(nameが存在しない)の場合も処理省略
if (0 === strcmp('=', $line[0]))
{
continue;
}

// "="で分割
$temp_list = explode('=', $line);

// データを配列に追加
$this->add_list(trim($temp_list[0]), trim($temp_list[1]));
}
}

/**
* 設定値を配列に追加
*
* @access private
* @param string $name 設定値のキー
* @param string $val 設定値
*/
private function add_list($name, $val)
{
// 優先度中:データとして「,」が有った場合に大丈夫?
if (false === mb_strpos($val, ','))
{
// 非配列データなのでそのまま設定
$this->list[$name] = $val;
}
else
{
// 配列データ
$val_array = explode(',', $val);
$val_array_length = count($val_array);
for ($i = 0; $i < $val_array_length; $i++)
{
$this->list[$name][] = $val_array[$i];
}
}
}

/**
* 設定値格納配列
*
* @access private
*/
private $list;

/**
* アプリケーションベースディレクトリのパス
*
* @access private
*/
private $base_path;
}



スポンサーサイト



テーマ:日記 - ジャンル:日記

  1. 2010/08/12(木) 16:56:37|
  2. 自作プログラム
  3. | トラックバック:0
  4. | コメント:0
<<自作フレームワーク:controller.php | ホーム | 自作フレームワーク:check.php>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://kitoku1.blog129.fc2.com/tb.php/18-39ba07e5
この記事にトラックバックする(FC2ブログユーザー)