質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • PHP

    20318questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • 配列

    522questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

PHPで配列に入力した文字の一部の色だけ変更する方法。

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 236

taka_php

score 3

配列に入力した文字列の中で、一部の文字だけ色を変えたいのですが可能でしょうか?

「 'quession' => '次の選択肢のうちで誤っている物を選びなさい。',」
上の文で、「誤っている物」という部分だけを太文字にしたり、赤色に変えたりしたいのですが・・

<?php
$quiz => [
  'quession' = '次の選択肢のうちで誤っている物を選びなさい。',
  'answer' = ['①','②','③']
  ];

?>

<!DOCTYPE html>
<html lang="ja">
<head>
<body>
  <p>
     <?= $quiz['quession'] ?>
   </p>
・
・
・
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+2

 'quession' = '次の選択肢のうちで<em>誤っている物</em>を選びなさい。',などとして、cssで色を考える。
emタグがいやなら、spanタグとかを使う

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/26 00:30 編集

    'quession' = '次の選択肢のうちで<em>誤っている物</em>を選びなさい。',

    と入力したところ、
    <?= $quiz[quession] ?>
    にて
    「次の選択肢のうちで<em>誤っている物</em>を選びなさい。」

    とタグがそのまま表示されてしまいます・・・

    キャンセル

  • 2018/06/26 09:45

    htmlspecialcharsとかをかけてなければ、そんなことにはならないと思うのですが。少なくともサンプルとして示されたものを表示すると、emでも他のものでもタグがそのままは出てこないと思います。

    キャンセル

  • 2018/06/26 15:27

    htmlspecialcharsを使っていました。質問時に、手打ちで入力していて省いてしまいました。質問時は、ソースコードはコピーするのが基本ということを教えていただきました。今後は気を付けます。

    ご丁寧な回答をありがとうございました。

    キャンセル

checkベストアンサー

+1

このプログラム、そもそもPHPの構文間違いだらけですけど大丈夫ですか?


配列の定義が間違っています。

$quiz = array(
  'quession' = '次の選択肢のうちで誤っている物を選びなさい。',
  'answer' = array('①','②','③')
  );


ではなく

$quiz = array(
  'quession' => '次の選択肢のうちで誤っている物を選びなさい。',
  'answer' => array('①','②','③')
  );

添え字の書き方も間違ってます。

<?= $quiz[quession] ?>


ではなく

<?= $quiz['quession'] ?>

$も何もないquessionという文字列(正確には文字列じゃないけど)は「定数」というものになります。
そのような定数はおそらく宣言されていないので、下記のようなエラーが出るはずです。

 PHP Notice:  Use of undefined constant quession - assumed ~~~ 


ソースコードもエラーもコピー&ペーストが基本です。
(でないと見ている人に本来は不要なはずの詮索を強いてしまいます)
もしコピー&ペーストしたものであれば、そもそも構文エラーが起きていないとおかしいので、
エラー表示がOnになっているか確認してください。なってなければOnにしてください。


どのような環境で実行されているか分かりませんが、前回質問でhtmlタグが入れられることが分かったはずなので、
実際に行いたい装飾を文字列内にhtmlタグを埋め込めば問題なく実現できることは分かったのではないでしょうか?

下記のようにすれば太字になりますし

$quiz = array(
  'quession' => '次の選択肢のうちで<strong>誤っている物</strong>を選びなさい。',
  'answer' => array('①','②','③')
  );


下記のようにして、spanに対してCSSを指定すればどのような装飾も可能となります。

$quiz = array(
  'quession' => '次の選択肢のうちで<span>誤っている物</span>を選びなさい。',
  'answer' => array('①','②','③')
  );

PHPが正しく動いているとしたらあとはHTML・CSSの問題です。

そういえば、前回質問にて配列定義を下記のようにするようにアドバイス受けていましたが、今回は忘れられていましたか?

$quiz = [
  'quession' => '次の選択肢のうちで誤っている物を選びなさい。',
  'answer' => ['①','②','③']
];


上で提示したPHPマニュアル:配列の「例1 シンプルな配列定義」の項に「PHP 5.4 ではこのようにも書けます」とあります(正確にはPHP5.4以降です。むしろ最近はarray()と書くことの方が少ないです)


PHP側でやっていることは画面に文字列を出力することであり文字の装飾などをしているわけではありません。
その文字列を出力する機能でhtmlタグを書けばブラウザから見ればhtmlなのでhtmlとして認識されるだけです。
正しくhtml出力できれば、あとはHTML・CSSの問題です。
この部分を念頭に置いていただくと表現の幅がグッと広がります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/26 15:25

    質問の仕方が、悪くお手数をおかけして申し訳ございませんでした。今後気を付けます。こちらで質問する前に、もう少しCSSなどの基礎的なことを勉強しなおそうと思います。

    ご丁寧な回答をありがとうございました。

    キャンセル

  • 2018/06/26 15:39

    解決したようで何よりです。
    ・プログラムコード、エラーメッセージは必ずコピー&ペーストすること
    ・以前の回答でもらったアドバイスは活かすこと

    この2点を徹底すれば、質問する機会は減っていく(質問することなく自分で解決できるようになる)と思いますよ。

    キャンセル

+1

配列に入力した文字を表示するときに色を変える/太字にする、ということじゃないんでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/26 00:14

    表示するときに色を変えるということでした。文章が悪くてすみません。

    キャンセル

  • 2018/06/26 00:20

    ならその表示のときに色指定のタグつけるってことで。
    #まあ、別回答のように表示の文字列作るときにタグ埋め込むってのが現実的かと

    キャンセル

  • 2018/06/26 00:32

    回答ありがとうございます。表示の時に色指定タグをつける方法は分かるのですが、できれば文字列を作るときにタグを埋め込みたいのです。
    文字列を作るときにタグをつけると、タグがそのまま表示されて困っています・・

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    20318questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • 配列

    522questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。