最新のWeb開発のチュートリアル
×

PHP チュートリアル

PHP HOME PHP イントロ PHP インストール PHP 構文 PHP 変数 PHP エコー/印刷 PHP データの種類 PHP ストリング PHP 定数 PHP 演算子 PHP If...Else...Elseif PHP Switch PHP whileループ PHP Forループ PHP 機能 PHP 配列 PHP 配列のソート PHP スーパーグローバル

PHP 取り扱い

PHP フォーム 取り扱い PHP フォーム 検証 PHP フォーム 必須 PHP フォーム URL/E-mail PHP フォーム コンプリート

PHP 高度な

PHP 多次元配列 PHP 日時 PHP 含めます PHP ファイル 取り扱い PHP ファイル オープン/読みます PHP ファイル 作成/書きます PHP ファイル アップロード PHP Cookies PHP Sessions PHP フィルター PHP Filters 高度な PHP エラー 取り扱い PHP 例外

MySQL Database

MySQL データベース MySQL 接続 MySQL Create DB MySQL Create 表 MySQL Insert Data MySQL 最後のIDを取得します MySQL 複数の挿入 MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML パーサー PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX イントロ AJAX PHP AJAX データベース AJAX XML AJAX ライブ検索 AJAX RSSリーダー AJAX 世論調査

PHP Examples

PHP 例 PHP クイズ PHP 証明書

PHP 参照

PHP アレイ PHP カレンダー PHP 日付 PHP ディレクトリ PHP エラー PHP ファイルシステム PHP フィルタ PHP FTP PHP HTTP PHP Libxml PHP 郵便物 PHP 数学 PHP その他 PHP MySQLiを PHP SimpleXML PHP 文字列 PHP XML PHP Zip PHP 時間帯

 

PHP htmlspecialchars() Function

<PHPの文字列のリファレンス

事前に定義された文字を変換する"<" (less than)">" (greater than) HTMLエンティティに:

<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>

上記のコードのHTML出力は次のようになります(View Source)

<!DOCTYPE html>
<html>
<body>
This is some &lt;b&gt;bold&lt;/b&gt; text.
</body>
</html>

上記のコードのブラウザの出力は次のようになります。

This is some <b>bold</b> text.
»実行例

定義と使用法

htmlspecialchars()関数は、HTMLエンティティに、いくつかの事前定義された文字を変換します。

事前に定義された文字は次のとおりです。

  • (ampersand)となり&#038;
  • " (double quote)となり&QUOT;
  • (single quote)となり&#039;
  • < (less than)になる&LT。
  • > (greater than)なる&GT。

ヒント:使用し、バック文字に特殊なHTMLエンティティを変換するにはhtmlspecialchars_decode()関数を。


構文

htmlspecialchars( string,flags,character-set,double_encode )

パラメーター 説明
string 必須。 変換する文字列を指定します。
flags 任意。 引用符、無効なエンコーディングおよび使用するドキュメントタイプを処理する方法を指定します。

可能な引用のスタイルは、次のとおりです。

  • ENT_COMPAT - デフォルト。 唯一の二重引用符をエンコード
  • ENT_QUOTES - ダブルとシングル引用符をエンコード
  • ENT_NOQUOTESは - 任意の引用符をコードしません

無効なエンコーディング:

  • ENT_IGNOREは - 代わりに関数は空の文字列を返したの無効なエンコーディングを無視します。 それはセキュリティへの影響を有することができるよう、避けるべきです。
  • ENT_SUBSTITUTEは- Unicodeの置換文字U + FFFDで設定指定された文字の無効なエンコーディングを置き換え(UTF-8)または&#FFFD。 代わりに、空の文字列を返します。
  • ENT_DISALLOWEDは- Unicodeの置換文字U + FFFDと指定されたDOCTYPEに無効であるコードポイント置き換え(UTF-8)または&#FFFDと、

使用DOCTYPEを指定するための追加のフラグ:

  • ENT_HTML401 - デフォルト。 HTML 4.01のようにコードを扱います
  • ENT_HTML5 - HTML 5のようにコードをハンドル
  • ENT_XML1 - XML 1のようにコードをハンドル
  • ENT_XHTML - XHTMLなどのコードをハンドル
character-set 任意。 文字セットを使用することを指定する文字列。

使用できる値は以下のとおりです。

  • UTF-8 - デフォルト。 ASCII互換のマルチバイト8ビットのUnicode
  • ISO-8859-1 - 西ヨーロッパ
  • ISO-8859-15 - 西ヨーロッパ(ユーロ記号+ ISO-8859-1で行方不明のフランスとフィンランドの文字を追加します)
  • CP866 - DOS固有のキリル文字セット
  • CP1251 - Windows固有のキリル文字セット
  • CP1252 - 西欧のためのWindows固有の文字セット
  • KOI8-R - ロシア
  • BIG5 - 繁体字中国語、主に台湾で使用されます
  • GB2312 - 簡体字中国語、国家標準文字セット
  • BIG5-HKSCS - 香港の拡張子を持つのBig5
  • シフトJIS - 日本
  • EUC-JP - 日本
  • MacRomanの - MacのOSで使用された文字セット

Note:認識できない文字セットは無視され、PHP 5.4より前のバージョンではISO-8859-1に置き換えられます。 PHP 5.4の時点で、UTF-8に置き換え無視されます。

double_encode 任意。 既存のhtmlエンティティをエンコードするかどうかを指定するブール値。
  • TRUE - デフォルト。 すべてを変換します
  • FALSE - 既存のhtmlエンティティをエンコードしないだろう

技術的な詳細

戻り値: 変換された文字列を返します。

文字列が無効エンコーディングが含まれている場合ENT_IGNOREまたはENT_SUBSTITUTEフラグのいずれかが設定されていない限り、それは、空の文字列を返します。
PHPバージョン: 4+
変更履歴: 文字セットパラメータのデフォルトは、PHP 5でUTF-8に変更しました

ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_HTML5、ENT_XML1とENT_XHTMLは、PHP 5.4で追加されました

ENT_IGNOREは、PHP 5.3で追加されました

double_encodeパラメータは、PHP 5.2.3で追加されました

文字セットのパラメータは、PHP 4.1で追加されました

その他の例

例1

いくつかの事前定義された文字がHTMLエンティティに変換します。

<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>

上記のコードのHTML出力は次のようになります(View Source)

<!DOCTYPE html>
<html>
<body>
Jane &amp; 'Tarzan'<br>
Jane &amp; &#039;Tarzan&#039;<br>
Jane &amp; 'Tarzan'
</body>
</html>

上記のコードのブラウザの出力は次のようになります。

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
»実行例

例2

二重引用符は、HTMLエンティティに変換します。

<?php
$str = 'I love "PHP" .';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>

上記のコードのHTML出力は次のようになります(View Source)

<!DOCTYPE html>
<html>
<body>
I love &quot;PHP&quot;.
</body>
</html>

上記のコードのブラウザの出力は次のようになります。

I love "PHP" .
»実行例

<PHPの文字列のリファレンス