php时间选择器插件与安全过滤参数发生空格冲突

php参数过滤时,将“ ”作为隐患予以禁止,但是在时间传递时,如2023-09-30 10:00:00作为变量传递时,被禁止。

php安全参数过滤

function safe_replace($str)
{
    $disallow_str = array('%27', '%2527', '*', '"', "'", ';', '<', '>', "{", '}', '\\', ' ', 'and', 'script');
    if (is_array($str)) {
        return $str;
    } else {
        for ($i = 0; $i < count($disallow_str); $i++) {
            if (stripos($str, $disallow_str[$i]) !== false) {
                die('传递参数非法,禁止访问。');
            }
        }
        return $str;
    }
}

JavaScript参数替换方案

在JavaScript中,你可以使用String.prototype.replace()函数来替换字符串中的特定字符。以下是一个封装的函数,将输入的时间字符串中的空格替换为’@':

function replaceSpacesWithAt(time) {
    return time.replace(/ /g, '@');
}

let timeString = "2023-08-29 11:00:11";
let newTimeString = replaceSpacesWithAt(timeString);

console.log(newTimeString);  // 输出: "2023-08-29@11:00:11"

在这个函数中,我们使用正则表达式 / /g 来匹配所有的空格。g标志表示全局匹配,意味着替换所有的匹配项,而不仅仅是第一个。replace()函数将所有匹配的空格替换为’@'。

PHP时间参数逆替换方案

在 PHP 中,你可以使用 str_replace() 函数来替换字符串中的特定字符或子串。以下是一个封装的函数,将输入的字符串中的 “@” 替换为空格:

function replaceAtWithSpace($str) {
    return str_replace('@', ' ', $str);
}

$string = "Hello@World";
$newString = replaceAtWithSpace($string);

echo $newString;  // 输出: "Hello World"

在上述代码中,str_replace() 函数接受三个参数:要查找的字符串、要替换的字符串以及要在其中进行替换的源字符串。函数将返回替换后的新字符串。

在这个例子中,我们将 “@” 作为要查找的字符串,空格作为要替换的字符串,然后将输入的字符串作为源字符串进行替换操作。最后,通过 echo 语句输出替换后的新字符串。


@漏刻有时

你可能感兴趣的:(AIGC,php,开发语言)