2014-10-28 51 views
0

我有波紋管的代碼:爲PHP複用功能棄用sql_regcase()

foreach($filetypes as $filetype) 
{ 
    $filenum = $filenum + count(glob($root.$tree.$branch.sql_regcase($filetype),GLOB_NOSORT)); 
} 

功能sql_regcase()已過時。有沒有人知道sql_regcase()的替代方案? 我已經在下面嘗試過,但我認爲它是不一樣的。

$filenum = $filenum+count(glob($root.$tree.$branch.preg_mach("/$filetype/ig"),GLOB_NOSORT)); 

也根據這個http://php.net/manual/en/reference.pcre.pattern.posix.php沒有等效函數。在您的正則

回答

0

最後,我做到了:

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; 
} 
0

使用區分大小寫的標誌(i),而不是/[a-z]/i

+0

'preg_mach()'是不是在這樣一個替代方案,我使用它。你看,'preg_match()'返回的是/否。另一方面,'sql_regcase()'if'$ filetype ='jPeG';'會創建一個模式,如:[[Jj] [Pp] [Ee] [Gg]'。因此,'glob()'函數中的完整模式是:'/ root/my_site/public_html/images/[Jj] [Pp] [Ee] [Gg]'和'glob()'將匹配並返回每個' jpeg'文件名(不區分大小寫)在文件夾中。然後count()將執行數學運算並返回文件數(jpeg)。我不知道如何以另一種方式從'$ filetype'創建模式。 – ioaniatr 2014-10-30 01:16:45