PHP7 sql_regcase 的替代函数

php5中有一个正规化函数 sql_regcase ,作用是在 选择大小写都符合的 字串

但php7中 这个函数 拿掉了,所以小妹试了很多方式,试着在正规化中寻找能够取代的方式,2天,寻找未果,特地来请教各位大大,有没有其他的方式可以取代这个函数的功能 ... 感谢!!

阅读 3.2k
2 个回答

譬如这样?

$string = preg_replace_callback( '/[a-zA-Z]/', function($matches){
        return "[".strtoupper($matches[0]).strtolower($matches[0])."]";
    } , 'hello-. world-.');
    var_dump($string);

结果:

string(45) "[Hh][Ee][Ll][Ll][Oo]-. [Ww][Oo][Rr][Ll][Dd]-."

至于题主问的封装函数问题,可以拿这个做一个简单的例子:

function sqlRegcase($string){
    return preg_replace_callback( '/[a-zA-Z]/', function($matches){
        return "[".strtoupper($matches[0]).strtolower($matches[0])."]";
    } , 'hello-. world-.');
}

这个不是正则里面的i模式就行了么?
如果是要在正则里面临时启动i模式, 用 (?i) 就好.

preg_match('/(?i:saturday)/', 'saturday', $m); var_dump($m);
preg_match('/(?:(?i)saturday)/', 'Saturday', $m); var_dump($m);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题