例
事前に定義された文字を変換する"<" (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 <b>bold</b> 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 | 任意。 引用符、無効なエンコーディングおよび使用するドキュメントタイプを処理する方法を指定します。 可能な引用のスタイルは、次のとおりです。
無効なエンコーディング:
使用DOCTYPEを指定するための追加のフラグ:
|
character-set | 任意。 文字セットを使用することを指定する文字列。 使用できる値は以下のとおりです。
Note:認識できない文字セットは無視され、PHP 5.4より前のバージョンではISO-8859-1に置き換えられます。 PHP 5.4の時点で、UTF-8に置き換え無視されます。 |
double_encode | 任意。 既存の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 & 'Tarzan'<br>
Jane & 'Tarzan'<br>
Jane & '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 "PHP".
</body>
</html>
上記のコードのブラウザの出力は次のようになります。
I love "PHP" .
»実行例 <PHPの文字列のリファレンス