在PHP中检查任何情况下敏感的情况

Ran*_*jit 2 php

我有一个像这样的条件

if ( ( $red == '50' && $city == 'Bali' ) ||  ( $red == '50' && $city == 'BALI' ) ) {
    //My code here
}
Run Code Online (Sandbox Code Playgroud)

我如何结合条件并写一行.php中有任何功能吗?

han*_*rik 8

有一个函数用于完全不区分大小写的比较函数调用strcasecmp,它匹配Bali和BaLi和BALI以及任何其他情况组合,假设asfii/ascii-utf8的子集

if ($red == '50' && 0 === strcasecmp($city,'Bali') )
Run Code Online (Sandbox Code Playgroud)
  • 编辑:正如@Jiri Hrazdil指出的,如果你要比较非ascii字符(比如ÆØÅæøå),你应该使用mb_函数,比如if ($red == '50' && mb_strtolower($city,'UTF-8') ==='åsgårdstrand')- 如果你特别使用UTF-8,你也可以使用preg_match与/ui修饰符,如if ($red == '50' && preg_match('/^'.preg_quote('Bøli').'$/ui',$city) )
    • 但是preg_match只支持UTF-8 unicode,而不支持任何其他字符集.mb_支持所有主要和许多罕见的字符集


Joh*_*nde 7

只需将字符串转换为大写或小写,然后进行比较:

if ( $red == '50' && strtolower($city) === 'bali' ) {
    //My code here
}
Run Code Online (Sandbox Code Playgroud)

要么

if ( $red == '50' && strtoupper($city) === 'BALI' ) {
    //My code here
}
Run Code Online (Sandbox Code Playgroud)