• ベストアンサー

PHPでのハイパーリンク表示について

初学者です。よろしくお願いします。 phpで、htmlタグを含んだ文字列を変数に代入し、echoコマンドで表示したところ、ハイパーリンクではなく、文字列がそのまま表示されてしまいます。 これをハイパーリンクさせる方法についてご教示ください。 例> Moji$="<a href="http://~">文字</a>" echo Moji$ ↓ <a href="http://~">文字</a> のまま表示されてしまいます。

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.4

getField を使うとデータの文字列はHTMLエンティティに変換されるようですから、ブラウザでHTMLソースを見ると &lt;a href ・・・・・ と言った形で < 等々がエンコードされた文字列が出力されていませんか? データをhtmlとして出力させたい場合は、HTMLエンティティに変換しない getFieldUnencoded を使うといいようです。

penguinpenpen
質問者

お礼

getFieldUnencodedを使用して解決しました。 ご教示いただき感謝いたします。 また、不正確な例示にも関わらず、親切にご回答いただいた皆様にも感謝いたします。 ありがとうございました!

その他の回答 (4)

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.5

> 最後の方のコメントに追記 最初の方、ね。 まず、出力しているタグはそれだけでは無いでしょう。 それらがどう表示されているか書かないと、回答者は想像力を限りなく要求されます。 ま、闇夜に鉄砲で回答すると、 </html> を出力した後で、実行してませんか?

penguinpenpen
質問者

お礼

今回初めての質問でしたので、質問の仕方についても学ばせて頂きました。皆様からのご忠告も今後の反省点とします。 皆さんの貴重な時間を浪費してしまいすみませんでした。 ちなみに、</html>の前に処理しておりました。getFieldUnencodedの使用で解決しました。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.3

> <a href="http://~">文字</a> > のまま表示されてしまいます。 まさか。表示されるはずもないですけど。 エラーだらけで実行されないでしょう。 もう少し本当のことを書きましょう。

penguinpenpen
質問者

お礼

まずお詫びします。 例として挙げたものの構文が簡素化した上に間違っておりました。最後の方のコメントに追記させていただきました。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

提示された例のツッコみ所は、適宜 脳内変換しときます。 んで、思いついただけの可能性。 可能性その1 : どっかに htmlentities とか htmlspecialchars がないですか? 可能性その2 : ブラウザが HTMLだと認識してないのかも。

penguinpenpen
質問者

お礼

まずお詫びします。 例として挙げたものの構文が簡素化した上に間違っておりました。最後の方のコメントに追記させていただきました。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

まず、変数を洗わず $ は変数名の先頭に付けなければいけませんので Moji$="<a href="http://~">文字</a>" ではなく $Moji="<a href="http://~">文字</a>"; です。 例文を作成する際のタイプミスなのでしょうか、それとも実際のプログラムにも同様に書かれているのでしょうか。 同様に書かれているのであれば、構文エラーが発生しプログラムが実行されていないはずですが、実際はどのようになっているでしょうか。 また変数代入の際に文字列を " で囲まれていますが、href属性の値も " で囲もうとされています。 この場合 $Moj$="<a href=\"http://~\">文字</a>"; として、href属性の値に使用する " をエスケープしないと構文エラーが発生しプログラムが実行されていないはずですが、実際はどのようになっているでしょうか。

penguinpenpen
質問者

お礼

皆様 ご回答頂きましてありがとうございました。 まずお詫びします。 例として挙げたものの構文が簡素化した上に間違っておりました。 実際には、FileMaker というDBソフトを使用し、 そこで計算させた結果の文字列をPHPからget関数で取り出し、echoコマンドで表示しています。 FileMaker側では、以下(1)のような文字列を作成します。 これをPHPで(2)のようにして表示しています。 その結果が(1)の文字列のまま表示されております。 (1)<A HREF="http://172.18.xx.xx/supportadd.php?ID=123">記録を追加</A> (2)<?php echo $record->getField('サポート記録追加'); ?> ※getField関数はFileMaker API for PHPで用意されている関数で、「サポート記録追加」のデータフィールドで計算させた値(1)を取り出してきます。

関連するQ&A