• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:実体参照に置き換える方法について)

実体参照に置き換える方法とは?

このQ&Aのポイント
  • 実体参照に置き換える方法について
  • 下記のソースをブラウザで閲覧した所、真っ白な画面が表示されてしまいました。'テスト'の'を消した所、ブラウザにテスト"とリンクつきで表示されましたが、'テスト"と表示する方法が分かりませんでした。
  • $testに入れている中身はデータベースから取得しており、ここの文言を直接触る事は出来ません。データベースの中身の'を実体参照に置き換えた上で、$testに格納できれば大丈夫かと思ったのですが、どうすれば出来るかわからなかったため、アドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。

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

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

>$testに入れている文言は直接触る事が出来ません >(何が入っているか自体分かりません)。 命題自体がおかしいですね DBから$testを自動で得ているなら、受け取った時点でエスケープされた データになっています。抽出すればそのままつかえるはずです 逆に自動で得たデータにシングルクォーテーションがはいっていないなら DBに投入された時点でクォーテーションをはずされている可能性が高いです。 いずれにしろ、どういうデータ管理をしているかわからないので 明確な回答はできませんが、仕様が間違っているとしか・・・

iroha_168
質問者

お礼

ご回答ありがとうございます。 その後調べた所、PHP コード内でデータを使えるようにする記述を発見し、それを付加したところ、No.1のご回答のようにエスケープされ、意図した動作をする事を確認いたしました。 http://www.movabletype.jp/documentation/appendices/modifiers/encode_php.html このたびはどうもありがとうございました。 以上、よろしくお願いします。

その他の回答 (1)

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

エスケープするだけでは? <?PHP $test = '<a href="http://hoge.com/">\'テスト"</a>'; $url = 'http://hoge.com/'; echo str_replace($url, '/', $test); ?>

iroha_168
質問者

お礼

ご回答ありがとうございます。 確かにエスケープできればよいと思いますが、$testに入れている文言は直接触る事が出来ません(何が入っているか自体分かりません)。 その為、「'<a href="http://hoge.com/">'テスト"</a>'」というデータがある場合、何らかの方法で「'<a href="http://hoge.com/">\'テスト"</a>'」という変換ができれば実体参照に置き換える必要はないと思いますが、その何らかの方法が分かりませんでした。 以上、よろしくお願いします。

関連するQ&A