![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
デザインとプログラムを分離して書くために参考書を参考にし、
以下のようなユーザ定義関数を作りました。
function display($template,$data){
foreach($data as $key => $val){
$$key=htmlspecialchars($val,ENT_QUOTES);
}
require_once($template);
}
例えばメールフォームの場合、フォームから入力されたデータを
$data["name"]=$_POST["name"];
$data["kenmei"]=$_POST["kenmei"];
$data["honbun"]=$_POST["honbun"];
$data["seibetu"]=1;
display("kakunin.php",$data);
このような感じで渡し、良い感じに分離できました。
しかし、このユーザ定義関数を使ってブログを作成しようと考えたところ、
分離がうまくできませんでした。(結局デザイン側のソースにforeachやらなんやら書くことになってしまい、汚くなる。)
ブログ作成の場合、どのような感じでデザインとプログラムを分離するのか一例を教えていただけないでしょうか?
※投稿データをテキストデータ(data.txt)へ一行づつ保存する。
※テキストデータ(data.txt)が空でなければforeachで展開し、記事を一覧表示
この2点を想定した場面での分離方法を、どなたかご教授ください。
smartyは使わずに書きたいと思っています。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
簡単にすませるなら……
display関数のなかで htmlspecialchars(...) しないで、
$data["..."] に代入するときにする。
data.txt は foreach でタグを組み立てて、htmlspecialchars(...) しないで、そのまま $data["..."] へ代入。
かな?
でも本気でロジックと表示を分離させたいなら、テンプレートの仕様を考えて、テンプレートファイルをパースして、仕様の通りに展開するエンジンを実装した方がいいよ?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- Java 動かなくなったのでJavaソースを手直しお願いします。 2 2022/04/30 05:35
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csvファイルを読み込み→上書き...
-
C言語でCSVファイルの行数を読...
-
Resource id #3 と表示されま...
-
phpでCSVファイルの中身を多次...
-
CSVデータの行数カウントをした...
-
データベースに登録はされるが...
-
phpを実行するとファイルダウン...
-
バイナリファイルの内容を、そ...
-
データ受け取り
-
PHPでCSVの一部の行を編集したい
-
「test.php?」の後のデータの読...
-
変数の中に変数を
-
二次元文字列をポインタで操作...
-
デザインとプログラムの分離
-
エラーメッセージ(無効な間接...
-
DBを使用しないで条件にマッチ...
-
配列をファイルに書き込む方法
-
二次元配列の削除
-
csvのソーティング
-
何が起きてたのか教えてもらえ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの構造体の値を読み...
-
複数行のデータのPOST処理に関して
-
エラーメッセージ(無効な間接...
-
Resource id #3 と表示されま...
-
ヒアドキュメントの中のfor文
-
自動で番号を振りたい
-
C言語でCSVファイルの行数を読...
-
配列同士の足し算のループ処理
-
stdClass Objectを連想配列のよ...
-
PHPでCSVの一部の行を編集したい
-
phpを実行するとファイルダウン...
-
行数が30万件ほどあるCSVから、...
-
phpでCSVファイルの中身を多次...
-
php Undefined variableエラー
-
CSVデータの行数カウントをした...
-
csvの内容を行単位で削除したい
-
複数ファイルで、それぞれの行...
-
テキストデータから指定行の削除
-
rubyで複数列のデータを一行に...
-
PHP5でCSVの指定行データだけを...
おすすめ情報