PHPのはhtmlspecialchars()関数
例
事前に定義された文字 "<"(未満)および「>」(より大きい)は、HTMLエンティティに変換しました:
<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>
(ソースを表示)を以下のように上記のコードのHTML出力は、次のとおりです。
<!DOCTYPE html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>
次のように上記のコードのブラウザの出力は、次のとおりです。
This is some <b>bold</b> text.
実行中のインスタンス»
定義と使用法
HTMLエンティティにいくつかの事前定義された文字はhtmlspecialchars()関数。
事前に定義された文字は次のとおりです。
- &(アンパサンド)になる&#038;
- "(二重引用符)になります&QUOT;
- '(シングルクオート)になります」
- なる&LT <(未満)。
- >(より大きい)になる&GT;
ヒント:バック文字に特殊なHTMLエンティティを取得するには、使用htmlspecialchars_decode()関数。
文法
htmlspecialchars( string,flags,character-set,double_encode )
パラメータ | 説明 |
---|---|
文字列 | 必須。 変換される文字列の規定。 |
フラグ | オプション。 引用符、無効な符号化およびドキュメントの種類の規定に対処する方法。 引用符の使用可能なタイプ:
無効なコード:
ドキュメントタイプには、追加のフラグを使用する必要が:
|
文字セット | オプション。 使用する文字セットを指定する文字列。 指定可能な値:
注:以前のバージョン5.4 PHPでは、代わりにISO-8859-1によって無視される文字のセットを認識することはできません。以降PHP 5.4ので、識別できない文字セットはUTF-8の代わりに無視されます。 |
double_encode | オプション。 エンコード既存のHTMLエンティティかどうかを指定するブール値。
|
技術的詳細
戻り値: | 変換された文字列を返します。 文字列が無効なコードが含まれている場合は、空の文字列がENT_IGNOREまたはENT_SUBSTITUTEフラグがない限り、返されます。 |
---|---|
PHPバージョン: | 4+ |
更新ログ: | UTF-8へのPHP 5では、デフォルト値の文字セットのパラメータ。 PHP 5.4では、コメントを追加しました:ENT_SUBSTITUTE、ENT_DISALLOWED、ENT_HTML401、ENT_HTML5、ENT_XML1とENT_XHTMLを。 PHP 5.3では、ENT_IGNOREを追加します。 PHP 5.2.3では、double_encodeパラメータを追加します。 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
?>
$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出力は、次のとおりです。
<!DOCTYPE html>
<html>
<body>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'
</body>
</html>
<html>
<body>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'<br>
Jane & 'Tarzan'
</body>
</html>
次のように上記のコードのブラウザの出力は、次のとおりです。
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'
実行中のインスタンス»
例2
HTMLエンティティへの二重引用符:
<?php
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>
$str = 'I love "PHP".';
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
?>
(ソースを表示)を以下のように上記のコードのHTML出力は、次のとおりです。
<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>
<html>
<body>
I love "PHP".
</body>
</html>
次のように上記のコードのブラウザの出力は、次のとおりです。
I love "PHP".
実行中のインスタンス»
PHPの文字列リファレンス