关于htmlspecialchars的函数化,不知道为什么我照着书写的这个代码无法运行,上面的日语大家看不懂的话也不用在意,只看编码就好了,谢谢
以下是编码
<?php
// XSS対策のためのHTMLエスケープ
function es(array|string $data, string $charset='UTF-8'):mixed {
// $dataが配列のとき
if (is_array($data)){
// 再帰呼び出し
return array_map(__METHOD__, $data);
} else {
// HTMLエスケープを行う
return htmlspecialchars(string:$data, flags:ENT_QUOTES, encoding:$charset);
}
}
// 配列の文字エンコードのチェックを行う
function cken(array $data):bool{
$result = true;
foreach ($data as $key => $value) {
if (is_array($value)){
// 含まれている値が配列のとき文字列に連結する
$value = implode("", $value);
}
if (!mb_check_encoding($value)){
// 文字エンコードが一致しないとき
$result = false;
// foreachでの走査をブレイクする
break;
}
}
return $result;
}
// ?>