您好我有一个文件名 1208.flowers.blue.jpg
我想将此名称更改为
1208_flowers_blue.jpg
$str="1208.flowers.blue.jpg";
$count=substr_count($str,".");
if($count>1){
//Change string to '1208_flowers_blue.jpg'
}
我该怎么做?如果这个问题已经回答,请告诉我。
答案 0 :(得分:5)
最短的方法是使用REGEX:
echo preg_replace('/\.(?=.*\.)/', '_', $str);
答案 1 :(得分:3)
如果要删除任何非单词字符(a-zA-Z0-9_除外),则跟随正则表达式将匹配非单词字符
$str="1208.flowers.blue.jpg";
echo preg_replace("/\W(?=.*\.[^.]*$)/", "_", $str);
这也会将.
从文件名1208.flowers.blue.jpg
移至1208_flowers_blue.jpg
如果您只想从文件名中删除.
,则小的更改会将\W
从正则表达式替换为\.
$str="1208.flowers.blue.jpg";
echo preg_replace("/\.(?=.*\.[^.]*$)/", "_", $str);
答案 2 :(得分:1)
在评论中也将此答案视为BenseidSeid。
echo str_replace ('.', '_', substr ($str, 0, strrpos ($str, '.'))) . strrchr ($str, '.');
此解决方案完全基于字符串函数。