Dec
26
0
PHPのhtmlspecialchars

`htmlspecialchars`は、PHPで文字列をHTMLエンティティに変換するための関数です。この関数は、HTML特殊文字をエンティティに変換することで、クロスサイトスクリプティング(XSS)攻撃などからウェブアプリケーションを保護するのに役立ちます。

基本的な使用法は以下の通りです:

$original_string = '<p>This is a <b>bold</b> statement.</p>';
$escaped_string = htmlspecialchars($original_string);

echo $escaped_string;

上記の例では、`$original_string`に含まれるHTML特殊文字(`<`, `>`, `&`, `”`, `’` など)がエンティティに変換され、`$escaped_string`に格納されます。これにより、特殊文字がそのままHTMLとして解釈されず、表示されます。

`htmlspecialchars`は、デフォルトではダブルクォート (`”`)、シングルクォート (`’`)、アンパーサンド (`&`)、小なり記号 (`<`)、大なり記号 (`>`) をエンティティに変換します。もしシングルクォートもエンティティに変換したい場合は、第二引数に `ENT_QUOTES` を指定します。

$original_string = "This is John's book.";
$escaped_string = htmlspecialchars($original_string, ENT_QUOTES);

echo $escaped_string;

このようにすることで、シングルクォートもエンティティに変換されます。

注意: `htmlspecialchars`を使用すると、HTML特殊文字がエンティティに変換されますが、他の文字エンコーディングに関する考慮が必要です。場合によっては、第三引数で文字エンコーディングを指定することが望ましいです。例えばUTF-8を使用する場合:

$escaped_string_utf8 = htmlspecialchars($original_string, ENT_QUOTES, 'UTF-8');
Dec
26
0
PHPのhtmlspecialchars_decode

`htmlspecialchars_decode`は、PHPでエスケープされたHTMLエンティティを元の文字列に戻すための関数です。`htmlspecialchars`や`htmlentities`などでエスケープされた文字列を元に戻す際に利用されます。

基本的な使用法は以下の通りです:

$escaped_html = "<p>This is a <b>bold</b> statement.</p>";
$original_html = htmlspecialchars_decode($escaped_html);

echo $original_html;

この場合、`$original_html`にはエスケープされていない元のHTMLが含まれます。この関数は、HTMLエンティティを対応する特殊文字にデコードします。

`htmlspecialchars_decode`は、デフォルトで `ENT_COMPAT` フラグを使用します。これはダブルクォートのみをエンティティとしてエスケープする設定です。もしシングルクォートもエスケープしたい場合は、`ENT_QUOTES` フラグを指定します。

$escaped_html = "<p>This is a <b>bold</b> statement with 'single quotes'.</p>";
$original_html = htmlspecialchars_decode($escaped_html, ENT_QUOTES);

echo $original_html;

このようにすることで、シングルクォートも正しくデコードされます。

注意: `htmlspecialchars_decode`は、HTMLエンティティに対してのみ機能します。`htmlentities`でエンティティ化された文字列に対しては、`html_entity_decode`を使用する必要があります。

Dec
26
0
PHPのhtmlentities

`htmlentities`は、PHPで文字列をHTMLエンティティに変換するための関数です。これを使用すると、HTML文書内で特殊文字(たとえば、 `<`, `>`, `&`, `”`, `’` など)をエスケープして表示することができます。これにより、クロスサイトスクリプティング(XSS)攻撃などからウェブアプリケーションを守ることができます。

基本的な使用法は以下の通りです:

$html = "<p>This is a <b>bold</b> statement.</p>";
$escaped_html = htmlentities($html);

echo $escaped_html;

この場合、`$escaped_html`にはエスケープされたHTMLが含まれます。これを出力すると、HTMLタグがそのまま表示されずにエスケープされた形で表示されます。

`htmlentities`関数は、デフォルトでISO-8859-1文字セットを使用しますが、文字セットを指定することも可能です。例えばUTF-8を使用する場合:

$escaped_html_utf8 = htmlentities($html, ENT_QUOTES, 'UTF-8');

`ENT_QUOTES`は、シングルクォートもエスケープするためのフラグです。

注意: `htmlentities`を使用すると、すべての特殊文字がエンティティに変換されます。これにはタグも含まれます。HTMLを再度表示する場合、`html_entity_decode`を使用して元の文字列に戻すことができます。

$original_html = html_entity_decode($escaped_html);

これにより、エンティティが元の特殊文字に変換された文字列が取得できます。

Dec
24
0
PHPのhtml_entity_decode

`html_entity_decode` 関数は、HTMLエンティティを通常の文字に変換するためのPHPの組み込み関数です。HTMLエンティティは、特殊文字や予約文字を表現するための特殊な表記法です。例えば、`<` は `<` を表し、`>` は `>` を表します。

以下は `html_entity_decode` 関数の基本的な使用例です。

<?php
// HTMLエンティティを含む文字列
$html_entity_string = "<p>Hello, &world&!</p>";

// html_entity_decode 関数を使用してHTMLエンティティを通常の文字に変換
$decoded_string = html_entity_decode($html_entity_string);

// 変換された文字列を表示
echo $decoded_string;
?>

この例では、`<p>Hello, &world&!</p>` というHTMLエンティティを含む文字列を `html_entity_decode` 関数で変換しています。結果として得られる文字列は `

Hello, &world!

` となります。

`html_entity_decode` 関数は、通常はHTMLエンティティを通常の文字に戻すために使用されます。また、第二引数を指定することで、変換するエンコーディングを指定することもできます。

$decoded_string = html_entity_decode($html_entity_string, ENT_QUOTES, 'UTF-8');

上記の例では、変換するエンコーディングとして UTF-8 を指定しています。

Dec
24
0
PHPのfprintf

`fprintf` 関数は、指定されたファイルポインタに書式化された文字列を書き込むための PHP の組み込み関数です。基本的な使い方は、標準の `printf` 関数と似ていますが、`fprintf` はファイルポインタに対して出力を行います。

以下は `fprintf` の基本的な使用例です。

<?php
// ファイルを書き込みモードで開く
$file = fopen("example.txt", "w");

// fprintf 関数を使用してファイルに書き込む
fprintf($file, "Hello, %s!", "world");

// ファイルを閉じる
fclose($file);
?>

この例では、`fopen` 関数を使用して “example.txt” というファイルを書き込みモードで開き、`fprintf` 関数を使用して書式化された文字列をファイルに書き込んでいます。最後に `fclose` 関数を使用してファイルを閉じます。

`fprintf` 関数は、第一引数にファイルポインタ、第二引数に書式文字列、そしてその後に書式文字列内で使用される変数や値を指定します。これにより、指定されたファイルに書式化されたデータを書き込むことができます。

上記の例を実行すると、”example.txt” ファイルに “Hello, world!” という内容が書き込まれます。