我想知道一种方法从文件名中删除所有小数,但最后一个.我需要保留最后一个,因为扩展遵循这一点.
例:
abc.def.ghij-klmnop.q234.mp3
Run Code Online (Sandbox Code Playgroud)
这个文件应该是这样的
abcdefghij-klmnopq234.mp3
Run Code Online (Sandbox Code Playgroud)
有些扩展名超过3个字符.
Asa*_*aph 12
你可以使用具有正向前瞻性的正则表达式.像这样:
$withdots = 'abc.def.ghij-klmnop.q234.mp3';
$nodots = preg_replace('/\.(?=.*\.)/', '', $withdots);
Run Code Online (Sandbox Code Playgroud)
执行完上面后,$nodots将包含abcdefghij-klmnopq234.mp3.正则表达式基本上是匹配所有句点,后面跟着另一个句点.所以最后一段时间不匹配.我们用空字符串替换所有匹配项,我们留下了所需的结果.
应该这样做:
$file = 'abc.def.ghij-klmnop.q234.mp3';
$parts = pathinfo($file);
$filename = str_replace('.', '', $parts['filename']).'.'.$parts['extension'];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |