• ベストアンサー

データ項目にタグが含まれている場合の表示

初めて投稿させていただきます。 PHPというかオープン系の初心者です。 データ項目にタグが含まれている場合の処理方法を教えてください。 下記の場合、プログラムで編集するべきなのかsmartyのテンプレートで指定すればいいのか御教授ください。 なにぶん初心者なのでお手柔らかにお願いいたします。 ◆データ中に含まれる内容 「<b>太字になる</b> <em>強調</em>しちゃうよ」 ◆期待する結果 「太字になる」を太字表示 改行して「強調」を強調表示 「しちゃうよ」を通常表示

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

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

>実際にブラウザーに表示するときにタグを機能させたいのです。 smartyを使っていても、何もしなければ(htmlspecialcharsなどを通さなければ)そのままブラウザに返るハズです。何かご自分で処理もしくは設定されていませんか? 改行を有効にするなら(br要素に置換して返したければ)nl2brは通さないといけないでしょうけど(苦笑

noname#159723
質問者

お礼

お返事が遅くなりまして申し訳ございませんでした。 御指摘どおりサニタイジングの処理がされていました。 勉強不足でした。 ありがとうございます。

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

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

意味がよくわからないのですが bタグとemタグをそのまま表示すれば太字と強調になりますよね? そういうことではないの?

noname#159723
質問者

補足

言葉足らずで申し訳ございませんでした。 データ項目というのが、テーブル中のデータということです。 テーブル中のデータ項目にタグを付加して文章を入力して、 実際にブラウザーに表示するときにタグを機能させたいのです。 現在、当該項目をブラウザーに表示しても、質問で挙げたように入力した内容、タグも文章の一部として表示されてしまうのです。

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

関連するQ&A

  • タグについて教えて

    タグを使って文字の変化をしたいのですが。 文字を例えば「青い空」とします。 1.強調の場合、<storong>青い空</strong> 2.太字の場合、<b>青い空</b>、ですね。強調と太字の違いは? 3.次に、「青い空」を強調(または太字)に文字色【例 <font color="blue"></font>でひとまとめにするにはどうしたらよいですか?

  • 改行を除いてHTML表示

    PHP4 Smartyにてコンテンツ作成しております。 デザイン部分であるHTMLはタグ等綺麗にインデントされておりますが、最後の処理としてブラウザーに表示する際に、改行を取り除きたいのですが、どのような方法がありますか。 Smartyを用いない場合の方法でも結構です。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • Smartyでの改行

    textareaのデータをPOST送信し、あるPHPで受けています。 その受けたデータをSmartyのテンプレートで表示しようとしておりますが、改行がうまくいきません。 textareaのwrapを使用し、自動改行しています。 例えば、{$data.note}のデータ内容が「ああああああああああああああああああ」とし、 「備考:{$data.note}」で表示すると、 備考:ああああああああ ああああああああああ と表示されます。 これを、 備考:ああああああああ    ああああああああああ という風に表示させたいのですが、どうすればいいのか、解かるかた、ご回答をお願いします。

    • ベストアンサー
    • PHP
  • smarty3で変数表示について

    smarty3 でエラーが発生しています。 現在自宅のサーバーでsmarty3を勉強しているのですが以下のエラーで困っています。 詳しい方ご教授お願いします。 環境 : CentOS 6.3 PHP 5.3.3 Smarty 3.1.13 読み込んでいるファイル test.php 1 <?php 2 ini_set('display_errors', 1); 3 ini_set('date.timezone','Asia/Tokyo'); 4 define('SMARTY_DIR', 'Smarty/libs/'); 5 require_once( SMARTY_DIR. 'Smarty.class.php'); 6 7 $smarty = new Smarty(); 8 9 $smarty->template_dir = '../templates/'; 10 $smarty->compile_dir = '../templates_c/'; 11 $smarty->config_dir = '../config/'; 12 $smarty->cache_dir = '../cache/'; 13 14 $msg = "テストを表示します"; 15 $smarty->assign('msg', $msg); 16 17 $smarty->display('test.tpl'); 18 19 20 ?> テンプレートファイル 1 <html> 2 {$msg} 3 </html> 表示されるエラー文 Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "../templates/test.tpl" on line 2 "{$msg}" unknown tag "private_print_expression"' in /usr/local/lib/php/includes/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:665 Stack trace: #0 /usr/local/lib/php/includes/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php(451): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "pr...', 2) #1 /usr/local/lib/php/includes/Smarty/libs/sysplugins/smarty_internal_templateparser.php(2353): Smarty_Internal_TemplateCompilerBase->compileTag('private_print_e...', Array, Array) #2 /usr/local/lib/php/includes/Smarty/libs/sysplugins/smarty_internal_templateparser.php(3101): Smarty_Internal_Templateparser->yy_r27() #3 /usr/local/lib/php/includes/Smarty/libs/sysplugins/smarty_internal_templateparser.php(3201): Smarty_Internal_Templateparser->yy_reduce(27) #4 /usr/local/lib/php/includes/Smarty/libs/sysplugins/smarty_intern in /usr/local/lib/php/includes/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 665 テンプレートファイルの{$msg}を削除して動作させるとコンパイルされてはいるようです。 よろしくお願いします。

    • 締切済み
    • PHP
  • phpとhtml間のデータ送信時「テキスト改行」処理について

    自分で調べてみましたが、どうしてもわからず行き詰まりました。 どなたかお知恵を貸して頂ければ幸いです。 【使用ファイル】 a.php php処理 b.html db抽出データ表示とフォーム(編集画面) c.html フォーム入力内容表示(確認画面) データ送信はPOSTとSmarty併用 dbへはMySQLで格納 【変数】 $z テキストエリアの項目値 【流れ】 a.php→b.html→a.php→c.html→a.php→b.html/dbへ格納 1:a.phpでdbよりデータ(テキスト)を抽出し追加、変数$zに格納。 2:Smartyでb.htmlへ$zを送る。送り先はフォーム内のテキストエリア値。 3:$zにテキスト追加で改行発生 (\n発生と予測)。 4:b.htmlからPOSTでa.phpへ。 nl2br($z)処理をし、<br />挿入。 5:Smartyでc.htmlへ$zを送る。 $zには<br>と\nの両方が入っている状態。改行表示される。ブラウザのページソースでは<br />が入っている。 6-1:c.html(POST)→a.php(smarty)→b.html str_replace("<br />,"","$z)で<br />を取り除き\nのみの状態 smartyでb.htmlへ 6-2:c.html(POST)→a.php→db格納  str_replace("<br />,"","$z)で<br />を取り除き\nのみの状態でdbへ格納 6-1,2とも<br />を入れたままだと文字列に<br />が入ってしまう 7:a.php→b.htmlで再度$zを呼び出してみると(1:の処理)<br />を取り除いたはずなのに、ブラウザではきちんと改行表示されている。 ブラウザのページソースに<br />の表示はない 【疑問点】 3:\nは発生してPOSTでa.phpにきているのか? きている種類が\nまたは他の改行文字かどうかを調べる手段はあるのか?バイナリ関連で調べるのか? 6-1:<br />を削除してhtmlへ送っているのに改行表示されるのか? <br />が文字列扱いになるのはなぜか? 6-2:dbでは\nが改行として認識されるのか? 7:\nしか入っていない文字列をブラウザ表示して、なぜ改行表示されるのか? 以上です。考えれば考える程にわからなくなってきました。 どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • 複雑なHTMLを出力するとタグが途切れます。

    複雑なHTMLだと、全く同じページを表示しても、 10回に1回ぐらいHTMLが途切れて表示される場合があります。 どのような原因が考えられるでしょうか? Smartyというテンプレートクラスを使用していて、 LinuxサーバでPHPからHTMLを表示しています。

    • ベストアンサー
    • PHP
  • タグの事で?

    現在、ホームページビルダー8でホームページを作成しています。タグの事で質問しますが、<strong>~</strong>や<em>~</em>などビルダーでは手書きで直すしかないような感じですが、このタグは大文字で書いたほうがいいのでしょうか、それとも小文字で書いたほうがいいでしょうか?教えて下さい。あと<B>と<strong>ではどのようにちがうのでしょうか?<em>タグも一緒に教えて下さい。はっきり言ってタグの事はすごく初心者です。よろしくお願いします!

  • Smartyで出力したHTMLコードが改行されない

    PHPのテンプレートエンジンであるSmaryについて教えてください。 SmartyテンプレートをUTF-8、かつ改行コードLFで作成しました。 (テキストエディタでちゃんと上記の通りなってるかも確認) ◯◯.tplとし、Webサーバを介して描画したところ、出力結果のHTMLのソースが改行されないで出力されてしまいました。 (ブラウザでのHTML自体の描画はできているので、HTMLから改行のみ消えてHTMLがみにくい状態) なぜか<script>タグで区切ったJavascriptのコードの部分だけはちゃんと改行されています。 HTML部分も改行したいのですが、なにか設定が必要なのでしょうか。 (以前、Smarty2.x系を使ったときは出力されたHTMLは改行されていました。) 【環境】 OS:MaxOSX Lion Webサーバアプリ:ZendServerCE5.3.5 Smarty:バージョン3.1.4 テンプレート:UTF-8、改行LFで作成 以上、よろしくお願いします。

    • 締切済み
    • 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
  • Smartyのテンプレートにincludeしたファイルを表示したいので

    Smartyのテンプレートにincludeしたファイルを表示したいのですが、うまくいきません。 具体的には、意図しない数値が入ってしまいます。 どうすればよいのでしょうか? ■呼び出す側 require("../../libs/Smarty.class.php"); require_once('../../lib/set_include_path.php'); $header = include("header.php"); $smarty = new Smarty(); $smarty->assign("header",$header); $smarty->display("date.html"); ■テンプレート <body> {$header}<br>日付<br> ■表示例 include("header.php"); の内容が正常表示 1 日付 include("header.php"); の内容が正常表示された後、勝手に「1」と表示されるので、困ってます。表示されないようにするにはどうすればよいでしょうか。 var_dump($header);ってしたところ、int(1) ってなるので、この1が表示されているのかと思うのですが、なんで表示されるのか、表示されないようにするにはどうすればよいか、教えてください。

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • DESKTOP-KE3230UでGoogle meetの背景設定ができません
  • PCの設定やハードウェアアクセラレーションの項目は問題ありません
  • Zoomでは問題なく背景設定ができますが、Google meetではできません。どうすれば良いですか?
回答を見る