• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPのエンコードについて教えて下さい。本のサンプルに)

PHPのエンコードについて教えてください

このQ&Aのポイント
  • 配列の場合はHTMLエンコードせず、配列以外の場合はHTMLエンコードする理由を教えてください。
  • 本のサンプルコードには、配列の場合にはHTMLエンコードせず、配列以外の場合にはHTMLエンコードするような処理が書かれています。
  • なぜ配列だったらHTMLエンコードしてはいけないのか、詳しく教えてください。

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

  • ベストアンサー
  • smileeeen
  • ベストアンサー率70% (21/30)
回答No.1

変数が配列の場合にHTMLエスケープをしてはいけない訳ではありません。 HTMLエスケープを行うhtmlspecialcharsという関数が 文字列に対して処理を行う関数であるため、 配列に入っている文字列について処理したい場合には一工夫する必要があります。 サンプルソース内に配列の時には下記のような処理をするように書かれています。 return array_map('h', $var); ここで使用されているarray_mapという関数は配列内の全ての要素に対して 第一引数の関数(ここではh)を適用させる関数です。 これによって配列の変数に対しても適切なエスケープ処理を行うことができるようになっています。

参考URL:
http://php.net/manual/ja/function.array-map.php
umanarini
質問者

お礼

配列の場合array_map関数を使い1つ1つhtmlspecialchars関数に対応させるという事ですね! 大変助かりました。ありがとうございます!

関連するQ&A

専門家に質問してみよう