批量反/转义特殊字符,数据库安全过滤写入,支持字符串、多维数组、对象集合

发表日期:2022-08-06 15:46:30 | 来源: | | 浏览(675) 分类:PHP杂项

八成是10年前写的非常好用

/**
 * 批量转义特殊字符
 * '&' (ampersand) becomes '&'
 * '"' (double quote) becomes '"' when ENT_NOQUOTES is not set.
 * "'" (single quote) becomes ''' (or ') only when ENT_QUOTES is set.
 * '<' (less than) becomes '&lt;'
 * '>' (greater than) becomes '&gt;'
 *
 * @param array|object|string $data
 * @return array|object|string
 * @example
 * $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
 * echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
 *
 */
function encode_special_symbol($data)
{
    if (is_array($data)) {
        foreach ($data as $key => $value) $data [$key] = encode_special_symbol($value);
    } elseif (is_object($data)) {
        foreach ($data as $key => $value) $data->$key = encode_special_symbol($value);
    } else {
        $data = htmlspecialchars(trim($data));
    }
    return $data;
}

/**
 * 批量反转义特殊字符
 * @param $data
 * @return array|string
 */
function decode_special_symbol($data)
{
    if (is_array($data)) {
        foreach ($data as $key => $value) $data [$key] = decode_special_symbol($value);
    } elseif (is_object($data)) {
        foreach ($data as $key => $value) $data->$key = decode_special_symbol($value);
    } else {
        $data = htmlspecialchars_decode($data);
    }
    return $data;
}


集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。