PHP – mb_check_encoding()で指定したエンコーディングに対する文字列の妥当性を確認する方法
PHPでは、mb_check_encoding()関数を使用することで、指定された文字列が特定のエンコーディングに対して有効かどうかを確認できます。この関数は、与えられたバイトストリームが指定されたエンコーディングとして正しい形式であるかを検証し、不正なエンコーディングによるセキュリティ攻撃を防ぐためにも活用されます。
構文
bool mb_check_encoding(str $value = null, str $encoding = null)
ポイント: この関数は、指定されたバイトストリームが指定されたエンコーディングに対して有効であるかどうかをチェックします。引数に配列を渡した場合は、すべてのキーと値が再帰的に検証されます。これにより、無効なエンコーディングを悪用した攻撃を未然に防ぐことができます。
パラメータ
mb_check_encoding()関数は、$valueと$encodingという2つのパラメータを受け取ります。
$value − 検証対象となるバイトストリームまたは配列です。この引数を省略した場合は、リクエスト開始時点からのすべての入力が検証の対象になります。
$encoding − 期待されるエンコーディング名を指定します。
戻り値
mb_check_encoding()は、検証が成功した場合にtrue、失敗した場合にfalseを返します。
使用例
<?php
// mb_check_encoding()関数を使って
// 文字列が有効かどうかを確認する
$bool = mb_check_encoding("Hello world", "ASCII");
// trueを返す
var_dump($bool);
?>
出力結果
bool(true)
バージョンに関する注意点
mb_check_encoding()関数では、以前のバージョンではnullable(null許容)な値は許可されていませんでしたが、PHP 8.0以降ではnullを渡すことが可能になりました。また、PHP 7.2からは配列を$valueとして受け取れるようになり、それ以前のバージョンでは文字列のみがサポートされていました。
-
PHPのimageistruecolor()関数で画像がトゥルーカラー画像かどうかを判定する方法
imageistruecolor() は、PHPに標準で組み込まれている関数の一つで、指定された画像がトゥルーカラー画像であるかどうかを判定するために使用されます。トゥルーカラー画像とは、各ピクセルがRGB(赤・緑・青)のカラー値によって表現される画像のことです。構文bool imageistruecolor(resource $image)パラメータimageistruecolor() 関数は、1つのパラメータ $image を受け取ります。このパラメータには、判定対象となる画像リソースを渡します。戻り値imageistruecolor() は、指定された画像がトゥルーカラー画像であれば t
-
PHPのimagecrop()関数で画像を指定した矩形領域にトリミングする方法
imagecrop()関数とはimagecrop()は、PHPに組み込まれている関数で、画像を指定した矩形領域にトリミングするために使用されます。指定された矩形領域から画像を切り取り、出力画像を返します。なお、元の画像リソース自体は変更されません。構文resource imagecrop ($image, $rect)パラメータimagecrop()は、$imageと$rectの2つのパラメータを受け取ります。$image − imagecreatetruecolor()やimagecreatefrompng()などの画像作成関数によって返される画像リソースです。処理対象の画像を指定します。$