php弃用sql_regcase()的替代函数

php弃用sql_regcase()的替代函数,php,posix,deprecated,pcre,alternate,Php,Posix,Deprecated,Pcre,Alternate,我的代码如下: foreach($filetypes as $filetype) { $filenum = $filenum + count(glob($root.$tree.$branch.sql_regcase($filetype),GLOB_NOSORT)); } 函数sql_regcase()已弃用。有人知道sql\u regcase()的替代方案吗? 我在下面试过,但我觉得不一样 $filenum = $filenum+count(glob($root.$tree.$branch

我的代码如下:

foreach($filetypes as $filetype)
{
  $filenum = $filenum + count(glob($root.$tree.$branch.sql_regcase($filetype),GLOB_NOSORT));
}
函数sql_regcase()已弃用。有人知道
sql\u regcase()
的替代方案吗? 我在下面试过,但我觉得不一样

$filenum = $filenum+count(glob($root.$tree.$branch.preg_mach("/$filetype/ig"),GLOB_NOSORT));
同样根据这一点,没有等效的函数。

在正则表达式中使用不区分大小写的标志(
i
),而不是
/[a-z]/i
最后,我做了:

function my_Sql_regcase($str){

    $res = "";

    $chars = str_split($str);
    foreach($chars as $char){
        if(preg_match("/[A-Za-z]/", $char))
            $res .= "[".mb_strtoupper($char, 'UTF-8').mb_strtolower($char, 'UTF-8')."]";
        else
            $res .= $char;
    }

    return $res;
}

preg_mach()
不是我使用它的替代方法。你看,
preg_match()
返回的是真/假。另一方面,
sql_regcase()
if
$filetype='jPeG'
将创建如下模式:
[Jj][Pp][Ee][Gg]
。因此,
glob()
函数中的完整模式将是:
/root/my_site/public\u html/images/[Jj][Pp][Ee][Gg]
glob()
将匹配并返回文件夹中的每个
jpeg
文件名(不区分大小写)。然后count()将进行计算并返回文件数(jpeg)。我不知道如何用另一种方法从
$filetype
创建模式。我不确定如何与您联系。我使用这个代码片段在OpenCart中实现了不区分大小写的图像搜索。虽然我还没有将修改提交给一般社区,但我想让您知道我在评论部分对您(ioaniatr)进行了评分。非常感谢。