ポンクソフト

設定ファイルの読み書き - PHPでファイルの読み書き・掲示板

前ページ PHPでファイルの読み書き・掲示板 TOP 次ページ

目次

  1. PHPでファイルの読み書き・掲示板
  2. ファイルの読み込み
  3. ファイルの書き込み
  4. ファイルの読み書き(ゲストブック)
  5. 設定ファイルの読み書き
  6. CSVファイルの読み込み
  7. テキストエディタの作成
  8. アンケートシステムの作成
  9. 掲示板1(シンプル)

設定ファイルを読み込む

アプリケーションのさまざまな状態を保存するのに、「設定ファイル」と言うものを使うことが良くあります。設定ファイルは、
キー=値
という行の羅列が最もよくある形式です。
PHPでは設定ファイルを一度に連想配列に読み込む「parse_ini_file」関数が用意されています。

プログラムの作成

以下のソースを入力してください。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>設定ファイルを読み込む</title>
</head>
<body>

<pre>
<?php
$ini = parse_ini_file('config.ini');
print_r($ini);
?>
</pre>

</body>
</html>
入力が終わったら「config1.php」というファイル名で保存し、サーバにアップしてください。

設定ファイルの作成

テキストエディタを開き、以下の内容を書き込んでください。
color=red
bgcolor=black
fontsize=200%
入力が終わったら「config.ini」というファイル名で保存し、サーバにアップしてください。その後、config1.php を実行します。

ソースの解説

$ini = parse_ini_file('config.ini');
parse_ini_file関数は、設定ファイルの内容を連想配列に格納する関数です。今回の場合は、$ini['color'] に red、$ini['bgcolor'] に black、$ini['fontsize'] に 200%、がそれぞれ格納されます。
print_r($ini);
print_r関数は引数で指定した変数の内容を分かりやすい形式で表示してくれるデバッグ用の関数です。HTMLだと改行が繋がってしまうので<pre>タグで囲んでいます。

設定ファイルを反映させる

設定ファイルの読み込みができたところで、実際にその設定ファイルに沿ってページを表示してみます。

プログラムの作成

以下のソースを入力してください。
<?php
$ini = parse_ini_file('config.ini');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css">
body {
  color: <?php print $ini['color'] ?>;
  background-color: <?php print $ini['bgcolor'] ?>;
  font-size: <?php print $ini['fontsize'] ?>;
}
</style>
<title>設定ファイルの反映</title>
</head>
<body>
<p>
設定ファイルのテスト<br>
設定ファイルのテスト<br>
</p>
</body>
</html>
入力が終わったら「config2.php」というファイル名で保存し、サーバにアップしてください。その後、config2.php を実行します。

ソースの解説

body {
  color: <?php print $ini['color'] ?>;
  background-color: <?php print $ini['bgcolor'] ?>;
  font-size: <?php print $ini['fontsize'] ?>;
}
スタイルシートのbody要素に設定ファイルから読み込んだ連想配列の値をそれぞれ割り当てています。

確認

ソースを表示してみて、ちゃんと設定ファイル通りの値が入っていることを確認してください。その後、設定ファイルをいろいろと変更してみて、反映されるか確認してください。

設定ファイルフォーム

フォーム上から設定ファイルに書き込むことができるようにします。

プログラムの作成

以下のソースを入力してください。
<?php
$ini = parse_ini_file('config.ini');
if ($_POST['color']) $ini['color'] = $_POST['color'];
if ($_POST['bgcolor']) $ini['bgcolor'] = $_POST['bgcolor'];
if ($_POST['fontsize']) $ini['fontsize'] = $_POST['fontsize'];
$fp = fopen('config.ini', 'w');
foreach ($ini as $k => $i) fputs($fp, "$k=$i\n");
fclose($fp);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css">
body {
  color: <?php print $ini['color'] ?>;
  background-color: <?php print $ini['bgcolor'] ?>;
  font-size: <?php print $ini['fontsize'] ?>;
}
</style>
<title>設定ファイルフォーム</title>
</head>
<body>
<form method="post" action="config3.php">
文字の色 <input type="text" name="color" value="<?php print $ini['color'] ?>"><br>
背景の色 <input type="text" name="bgcolor" value="<?php print $ini['bgcolor'] ?>"><br>
フォントの大きさ <input type="text" name="fontsize" value="<?php print $ini['fontsize'] ?>"><br>
<input type="submit" value="送信">
</form>

<p>
設定ファイルのテスト<br>
設定ファイルのテスト<br>
</p>
</body>
</html>
入力が終わったら「config3.php」というファイル名で保存し、サーバにアップしてください。その後、設定ファイルに書き込むことができるようにするために「config.ini」の属性変更をして「その他」の書込属性を許可しておいてください。その後、config3.php を実行します。

ソースの解説

if ($_POST['color']) $ini['color'] = $_POST['color'];
if ($_POST['bgcolor']) $ini['bgcolor'] = $_POST['bgcolor'];
if ($_POST['fontsize']) $ini['fontsize'] = $_POST['fontsize'];
各入力フォームに値が入っていれば設定ファイルから読み込んだ連想配列の値を変更しています。
$fp = fopen('config.ini', 'w');
foreach ($ini as $k => $i) fputs($fp, "$k=$i\n");
fclose($fp);
設定ファイルを書き込み専用としてオープンし、「キー=値」の形式で連想配列の内容を書き込んでいます。foreach文は、連想配列 $ini の各要素についてキーを $k に、値を $i に代入してループを繰り返します。
文字の色 <input type="text" name="color" value="<?php print $ini['color'] ?>"><br>
背景の色 <input type="text" name="bgcolor" value="<?php print $ini['bgcolor'] ?>"><br>
フォントの大きさ <input type="text" name="fontsize" value="<?php print $ini['fontsize'] ?>"><br>
フォームに予め設定ファイルの内容が入るように、value属性に設定ファイルから読み込んだ値を設定しています。
前ページ PHPでファイルの読み書き・掲示板 TOP 次ページ
このエントリーをはてなブックマークに追加 そっか0

このページに関するコメントをどうぞ

お名前:


カルティエ ソリテール
ブランドコピーブランドN級品専門店
史上最も激安ブランドブランドコピー-即日 配送可,100%入荷。
当店は正規品と同等品質は品質3年保証でご注文から5 日でお届け致します。
レディースとメンズ激安通販専門店!品質と本物は同様です。
全て新品、高い品質、激安 、送料は無料です( 日本全国)すべての商品は品質2年無料保証です。
ブランドコピー時計:
2017/03/24 14:04

カリマー
解りやすくて、とてもいいサイトですね!
phpは初心者ですが、最後まで到達できるよう頑張ります!
2017/03/23 04:03


ああああ
2017/03/23 00:54

オメガ ボーイズ
★2017最高等級新しい商品大量入荷!
■在庫情報随時更新!(*^-^*)
■信用第一、良い品質、低価格は。
★歓迎光臨★送料無料(日本全国)
ご注文を待ちしております
よろしくお願いいたします_(._.)_
2017/03/22 09:09


テスト
2017/03/21 14:02

ゆうた
かりんがすき
2017/03/17 14:36

saraebo
別windowsとして実装することなく、actionのphpで、コマンドとするデータベース等の更新で、その結果をクライアントに返さない(homeページの元画面は変わらない。)とする事はできるのでしょうか?
2017/03/17 12:09

ミーコ
テスト
2017/03/16 17:27

NsArk(プログラミング初心者)
非常に細かく書いていただき、大変参考になります!
ただ一点。
自身に理解力が本当に残念です・・・。
orz
2017/03/14 18:41

参考になりました
シンプルで分かりやすく、とても参考になりました。
色々なPHPシンプル掲示板のサイトを見ましたが、
ここが一番です。
ありがとうございました。
2017/03/12 20:15

残りを読む »