• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テンプレートエンジンを使ったPHP内での呼び出し)

テンプレートエンジンを使ったPHP内での呼び出し

このQ&Aのポイント
  • PHP内でテンプレートエンジンを使った呼び出しに関して問題が発生しています。
  • 特定の値が正しく表示されない状況が発生しており、空白ページが表示されています。
  • 値を正しく表示するためには、特定の書式を使用する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

(テンプレートでなく)php内に書いているのであれば(どう見てもそう読めますが) $num = $event['image01']; ではないのでしょうか。 なぜテンプレートで使う{val 連想配列のキー}という記述をphp側に書いているのかがわかりません。

tamamayan
質問者

補足

テンプレート あるシステムの中で使用していまして、<?~?>までがPHPとしています。テンプレートのファイルもシステムを経由してphpファイルとして吐き出します、 ループ処理をしていますので$event['image01'];では利用できず{val event/image01}でなければ表示ができません。 ですのでテンプレートファイルにPHPを書き足し <? $num = '{val event/image01}'; $num = sprintf("%08d", $num); echo $num; ?> で表示しようとしているのですが、うまくできません。 <?~?>で{val event/image01}を扱う方法はないでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • php テンプレート

    すみません。phpで質問です。 テンプレートを用意しようと思いとりあえずサンプルを探して動かしてみたのですがうまくテンプレートのように動きません。 ちゃんとした動かし方をお教えてください。 (tempファイルの拡張子はphpがいいです。) temp.html <h2>この記事は、_+test+_です。</h2> func.php <?php function func_temp($html_file, $disp_data) { // テンプレート表示用の関数 $html_data = file_get_contents($html_file); // テンプレートファイルを読み込み $replaced = '/_+(.*)+_/'; // 検索するパターンの指定 $html_data = preg_replace($replaced, $disp_data, $html_data); // 置換実行 return $html_data; // 表示用のHTMLデータを返す } ?> access.php <?php require 'func.php'; // テンプレート機能ファイルを読み込む $data = 'PHPのテンプレートって何で作る?'; // 画面に表示させるデータを登録 echo func_temp('temp.html', $data); // テンプレート機能関数を呼ぶ ?> 参考: https://www.sejuku.net/blog/73463

    • ベストアンサー
    • PHP
  • HTML template for PHPで、テンプレート側で表示文字

    HTML template for PHPで、テンプレート側で表示文字に制限をかけたいのですがどうすればよいでしょうか? {rval hige/hogehoge}となっている箇所の表示を、例えば20文字までとか、あるいは20文字以上だとそこで切り取り…を付与、みたいにしたいのですが、具体的に、どうすればよいのでしょうか? 自分では、下記リンク先を調べてみたのですが、よく分かりませんでした。 ▽[PHP-users 32496] Re: HTML template for PHPの詳しい解説があるサイトを探しています。 http://ml.php.gr.jp/pipermail/php-users/2007-July/033013.html

    • ベストアンサー
    • PHP
  • PHPで作ったカウンタを任意の位置における

    ようにしたいのですができません counter.php: <?php $data_file = './access.dat'; //データファイル $fp = fopen("$data_file", "r+"); $cnt_num=(string)(fgets($fp, 64)+1); fseek($fp,0); flock($fp,2); fwrite($fp,$cnt_num); fclose($fp); $cnt_num=sprintf("%06d",$cnt_num); $f_pass = './a_gif'; for($i=0;$i<strlen($cnt_num);$i++)$value[]=substr($cnt_num,$i,1); for($j=0;$j<count($value);$j++)echo "<img src=$f_pass/".$value[$j].".gif>"; ?> としてHTMLの任意位置で <img src="./counter.php"/> をおいたのですが×マークが出るだけでカウンタ値が表示されません どうしたらいいでしょうか

    • ベストアンサー
    • CGI
  • テンプレートエンジン

    phpのテンプレートエンジンについて。 テンプレートエンジンについて興味を持ち、触ってみたいのですがどのようなサイト構成のときに使えますか? イメージでは、ここの質問掲示版のような膨大な数の投稿やマイページ(会員登録情報) があるとき、情報または質問内容とデザインに区切り、テンプレートエンジンを使うことでページを構築することができるんじゃないか?と思うのですが、どうでしょうか? 例なども教えてもらえれば幸いです。

  • ナベアツプログラム(3の倍数と3の付く数字)

    PHPを勉強中です。 勉強の為に思いついたものをPHPで書いてみようと思い、ネタが古いですが100までの数字を表示し、見やすいように3桁揃えで10ずつで改行して、3の倍数と3のつく数字を太字で表示するプログラムを書いてみました。なんとなくできたようなかんじなのですが、30だけ太字になりません。原因がわかる方がいらっしゃれば教えていただけたら嬉しいです。よろしくお願いします。 <?php for($i = 1; $i <= 100; $i++){ if($i % 10 == 0) { echo sprintf('%03d', $i)." "."<br>"; } elseif($i % 3 == 0) { echo('<strong>'.sprintf('%03d', $i)." ".'</strong>'); }elseif(strpos($i,"3") !== false) { echo('<strong>'.sprintf('%03d', $i)." ".'</strong>'); }else{ echo sprintf('%03d', $i)." "; } } ?>

    • ベストアンサー
    • PHP
  • imgタグでのphpの呼び出しについて

    PHP+smartyを使って開発をしております。 【image.php】 イメージを出力するPHP 【index.php】 処理PHP 【index.tpl】 画面のテンプレート 3つのファイルがあり、 (1) index.phpにアクセスすると、 index.tplのテンプレートが呼び出されるようになっています。 index.tplの中で、<img src="image.php">とすると image.phpで出力した画像がindex.tplの中に表示されます。 (2) index.phpにアクセスすると、 index.tplのテンプレートが呼び出されるようになっています。 index.tplの中で、<img src="{imageChange}">とすると image.phpで出力した画像がindex.tplの中に表示されずバイナリデータが表示されてしまいます。 index.phpの中で関数が使用出来るように $smarty->register_function( "imageChange", "imageChange" ); と書いてあります。 (2)でやりたい理由として、 (1)でやるとパラメータを渡す際に、 ?aaa=1&bbb=2&ccc=9&ddd=4.....としなければいけないのと、 処理毎にPHPファイルを分けないといけない為です。 何とか関数を使用してテンプレートで呼び出す方法はないでしょうか。 他にいい方法がありましたら他の方法でも構いません。 ご教授お願い致します。

    • 締切済み
    • PHP
  • 「ようこそ○○様」をPHPで出力するためには

    下記スクリプトを実行しても反映されません。 エラーが数個出てしまいます。非力ながら訂正をしますが、動きません。 下記の場合何を変更すればよろしいでしょうか。 .恐れ入りますがご指導頂ければ幸いでございます。 <?php session_set_cookie_params(50000,$_SERVER['PHP_SELF']); session_start(); $_SESSION["vars"]; $pagetitle="Travel Route planner"; $id=$_COOKIE['PHPSESSID']; if($id==""){ //初回の処理 $mode="init"; $vars['count']=0; }else{ //二回目以降の処理 $mode="normal"; $x=$_POST['map_x']; //x座標 $y=$_POST['map_y'];//y座標 if($x && $y){ if(($x>466 && $x<518)&&($y>475 && $y<501)){ $_SESSION['vars']['count']=0; }else{ //座標を保存 $namex=sprintf("xpos%d",$_SESSION['vars']['count']); $namey=sprintf("ypos%d",$_SESSION['vars']['count']); $townname=sprintf("townname%d",$_SESSION['vars']['count']); $_SESSION['vars'][$namex]=$_POST['map_x']; $_SESSION['vars'][$namey]=$_POST['map_y']; $_SESSION['vars'][$townname]=$_POST['townname']; $_SESSION['vars']['count']++; } } //名前の処理 if(isset($_POST['cmd'])=="登録"){ if($_POST['username']==""){ $_SESSION['vars']['username']="[Unknown]"; }else{ $_SESSION['vars']['username']=$_POST['username']; } } //image.phpにわたす $param="?count={$_SESSION['vars']['count']}&"; $param.="username={$_SESSION['vars']['username']}&"; for($i=0;$i<$_SESSION['vars']['count'];$i++){ $namex=sprintf("xpos%d",$i); $namey=sprintf("ypos%d",$i); $townname=sprintf("townname%d",$i); $str=sprintf("%s=%s&%s=%s&%s=%s&", $namex,$_SESSION['vars'][$namex], $namey,$_SESSION['vars'][$namey], $townname,$_SESSION['vars'][$townname]); $param.=$str; } //ユーザー名付加 $pagetitle.=" for {$_SESSION['vars']['username']}"; } ?> <!DO..省略.> <form action="<?php echo"{$_SERVER['PHP_SELF']}";?>" method="POST"> 名前<input type="text" name="username"> <input type="submit" name="cmd" value="登録"> </form> .. .. </body> <?php endif;?> <?php if($mode=="normal"):?> <head><title><?php echo"$pagetitle";?></title></head> <form action="<?php echo"{$_SERVER['PHP_SELF']}";?>" method="POST"> <input type="text" name="townname"> <input type="image" src="./image.php<?php echo"$param";?>" name="map"> .. </html> お願い申し上げます。

    • 締切済み
    • PHP
  • C言語の配列の入れ方について質問です。

    下記のプログラムで1234という連続した数字を入れたら配列val[0]~[3]に val[0] = 1 val[1] = 2 val[2] = 3 val[3] = 4 というように入れたいのですが、どのようにして別々にすれば良いですか?宜しくお願いします。 #include<stdio.h> int main(void) { int num[10]; int val[4]; int i; printf("式:"); scanf("%d",num); for(i=0;i<4;i++){ val[i] = 0; } for(i=0; i<4; i++){ if((num[i] >= 1) && (num[i] <= 9)){ /*1から9の数値が入ったならば*/ val[i] = num[i]; } } for(i=0; i<4; i++){ printf("答え%d:%d\n",i,val[i]); } }

  • PHPでの変数化

    よろしくお願いします。 ★hyouji.php $a_list[1]="a"; $a_list[2]="b"; という配列があって パラメータ num=1を受け取ることにより、結果を表示したいです。 hyouji.php?num=1 つまり、 echo $a_list[$num]; というようなことをやりたいのですが、うまくひょうじされません。 どうかご教授ください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpでテンプレート作成時の条件分岐

    htmlでwebサイトを作成しています。 ファイル自体はphpにして、ヘッダーやナビゲーション、フッターなど、 共通部分はテンプレート化してincludeさせていますが、 サイトのTOPページだけ、微妙に表示を変えたいところがあります。 TOPページだけ、テンプレートを使わなければ良い話なのですが、 出来ればテンプレートを読み込ませたいと思っています。 そこで、特定のページにだけあるタグを表示させたりする条件分岐の書き方を 教えてください。 ソース中に下記のように書くのだとおもうのですが、、 <?php if (条件) { <p>○○○</p> } else {  <h2>xxxxx</h2> <p>○○○</p> } ?> (条件)部分の書き方がわかりません。 よろしくお願いします。

    • 締切済み
    • PHP