如何解决十六进制值区分大小写的问题?

时间:2014-06-26 作者:ericakfranz

设置WP Customizer选项,如果该值不是该设置的默认值,则仅将CSS写入头部。但是有时自定义程序会将十六进制值保存在所有大写字母中,有时则是小写字母。默认值都设置为大写值,即使在自定义程序中它们看起来是大写值,有时也会在CSS中打印小写十六进制值,从而添加不必要的代码。

在这种情况下,是否有方法覆盖十六进制值的大小写敏感度?

$cssoutput = \'\';

////* save the styles to the cssoutput
if ( $bg !== \'#F5F5F5\' ) {
    $cssoutput .=
        "body { background-color: " . $bg . "; } \\n";
}
if ( $title !== \'#333333\' ) {
    $cssoutput .=
        ".site-title a { color: " . $title . "; } \\n";
}
echo 
"<style type=\\"text/css\\">" . $cssoutput . "</style>";
当它根本不应该写入值时会导致这种情况-

<style type="text/css">body { background-color: #f5f5f5; } </style>
此外,我应该注意到,这似乎是一个随机操作,一些混合的十六进制值都是大写的,而另一些是小写的,即使它们都输入并保存为大写值。

2 个回复
最合适的回答,由SO网友:Joey Yax 整理而成

这是比WordPress更基本的PHP,但您可以使用strcasecmp().

if ( strcasecmp( $bg, \'#F5F5F5\' ) != 0 ) {
  $cssoutput .= "body { background-color: " . $bg . "; } \\n";
}

SO网友:Tom J Nowell

强制案例:

$bg = strtoupper( $bg );
现在将其与大写默认值进行比较,颜色本身的大小写现在是不相关的,因为它将始终是大写的(因为您这样做了)

结束

相关推荐