1

私は次の変換を達成しようとしています:

IM22_htp.JPG -> IM22_htp.jpg

これまでのところ、次のことを試しましたが、うまくいかないようです:

$string = "IM22_htp.JPG";
$pattern = '/(.+) \.(\w+)/i';
$replacement = '${1}\. strtolower($3)';
echo preg_replace($pattern, $replacement, $string);
4

3 に答える 3

9

正規表現の使用:

$string = "IM22_htp.JPG";
$new_string = preg_replace_callback('/\.\w+$/', function($m){
   return strtolower($m[0]);
}, $string);
echo $new_string;

使用pathinfo():

$string = "IM22_htp.JPG";
$new_string = pathinfo($string, PATHINFO_FILENAME) . '.' . strtolower(pathinfo($string, PATHINFO_EXTENSION));
echo $new_string;
于 2013-03-11T21:30:15.120 に答える
5

pathinfoを使用して拡張子のみを抽出し、小文字にしてから、ファイル名と連結すると簡単です。

于 2013-03-11T21:26:54.677 に答える
2
echo preg_replace_callback('/\.(\w+)/',
         create_function('$x','return strtolower($x[0]);'),
         $string);
于 2013-03-11T21:30:05.610 に答える