PHPでの質問です。

掲示板などでHTML上で設定を変更できるようなものがありますが
あれは仕組みとしては
1.基本的な情報が入ってる場所からデータを取ってくる
2.取って来たデータを設定画面に表示
3.設定を変更
4.変更されたデータを書き込み
大雑把に上記の4点になると思いますが
変更されたデータの書き込みは
ereg_replaceで置き換えて書き込みをすればいいと思っているのですが
もっと効率の良いやり方やサンプルなどあれば教えていただけないでしょうか?

回答の条件
  • 1人3回まで
  • 登録:2006/12/18 22:12:10
  • 終了:2006/12/21 18:35:19

回答(4件)

id:heppokoA No.1

heppokoA回答回数65ベストアンサー獲得回数72006/12/18 22:41:57

ポイント23pt
$settei1 = {?settei1}

みたいな感じで別に読み取り専用のひな形ファイルを用意しておき,str_replace()などを使って新しい設定データで{?settei1}の部分を置き換えておいて,設定ファイル全体をそっくり上書きする方法もあります。

あるいは,設定がデータベースに入っていればUPDATE文でいいですね。

id:quocard

すんません。

未熟者なもんで{?settei1}の意味がわかりませんでした。

検索しても{}や?の意味が出てこないのですが・・・。

検索の仕方が悪いのかな・・・。

2006/12/18 23:04:36
id:heppokoA No.2

heppokoA回答回数65ベストアンサー獲得回数72006/12/18 23:16:51

ポイント23pt

すみません。heppokoAです。

$new_config = str_replace("{?settei1}",$new_settei1,$hinagata_file_text);

という風にするというだけで,特別な意味合いはありません。混乱させてしまい申し訳ありません。

id:quocard

ありがとうございます。

理解出来ました。置き換え1つをとっても色々とあるので

どれが最適なのかまだわかりませんが

こちらもとても参考になりました。

ありがとうございます。

2006/12/18 23:58:40
id:Nigitama No.3

にぎたま回答回数311ベストアンサー獲得回数182006/12/19 01:07:31

ポイント22pt

>掲示板などでHTML上で設定を変更できるようなものがありますが

とのことですが、これって例えば

「ツリー表示」と「フラット表示」を切り替える

そういう感じのことですよね?

いろいろあると思うのですが、

一番最初に思いつくのは、

設定がデータベースに入っていて

表示する前にその設定を取得して、

設定の値に応じて表示を切り替えるのかなと考えました。コードはイメージですけど以下のような感じです。

$setting = データベースに設定を問い合わせ;

switch($setting){

case "flat":

echo フラット表示のHTML;

break;

case "tree":

echo ツリー表示のHTML;

break

}

こうすることで、スムーズになると思いますが、

どんな人でも、管理者が決めた設定にしかなりません。

そこで、ユーザーが任意の表示に切り替えたいというならば、

<a href='http://sample.com/bbs.php?display=flat'>フラット表示</a>

<a href='http://sample.com/bbs.php?display=tree'>ツリー表示</a>

というようなアンカーを用意して、

bbs.phpのはじめを以下のように。

$setting = $_GET['display'];

(以下は同じ・・・)

としてもよいと思います。

また、ユーザーが自身で決めた設定方法を保存するのであればクッキーを使用してもよいですし、

ログインさせるようなサイトであればデータベースのユーザー情報みたいなところに格納するのもひとつの方法かと思います。

解決になりますか?

id:quocard

なるほど。

アンカーなども手段の1つとしてありますね。

参考にさせていただきます。

2006/12/21 18:34:41
id:tezcello No.4

tezcello回答回数460ベストアンサー獲得回数692006/12/19 09:23:10

ポイント22pt

一般の訪問者が変更をするのではなく、そのページのオーナーが設定を変更する為の仕組みという事で説明します。

php では外部ファイルをプログラムとして読込む事ができるので、

例えば以下のようなグローバル定数を設定するファイルを作っておき(cfg.php というファイル名と仮定します)

<?php
// 設定値一覧
define("SETTEI1", 'atai1');
define("SETTEI2", 'atai2');
?>

そして、本体のプログラムの始めの方で

require('cfg.php');

として読み込むようにします。

値を変更したい時は、"define"等のコマンドも単純に文字列としてこのファイルをそっくり上書してしまいます。(パーミッションを666にしておかないと上書き出来ないと思います)

他にも普通の変数や配列変数への代入文を並べておくという事もできます。

id:quocard

そういった手法もあるのですね。

とても参考になります。

ありがとうございました。

2006/12/21 18:35:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません