添加默认的mp3扩展名到已经没有mp3扩展名

时间:2015-05-07 04:56:30

标签: php

我有一个网站,用户上传mp3文件并获得链接。所有文件都从表单上传到数据库表。但问题是上传的某些文件不包含.mp3扩展名,我认为这是因为用户使用的设备只保存了名称的音频文件。

这是文件的示例网址:

www.example.com/images/my_audio 

如您所见, .mp3 扩展程序缺失。

我希望此链接看起来像这样(带有默认的.mp3扩展名)

  www.example.com/images/my_audio.mp3 

如何在上传过程中验证图片名称,如果没有扩展名,可以添加扩展程序?

我尝试使用str_replace()

 str_replace(" ",",".mp3",$file);

但它似乎不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用:

if(preg_match('/mp3/',$file))
{
  echo 'It has extension';
}
else
{
  $file .= '.mp3';
}

答案 1 :(得分:1)

如果你想要一个单行,你可以随时使用

preg_replace("/(.+)(?<!\.mp3)$/i", "$1.mp3", $file_name);

preg_replace的第一个参数说

  1. 抓住任何文字(.+),只要
  2. 行结束前的文字(EOL = $ .mp3(?<!\.mp3)
  3. 此时有两种可能性。根据用户在文件名末尾是否有.mp3扩展名,我们发现的内容与上述两个条件相符,或者我们没有:

    • 如果您确实拥有XYZ.mp3形式的东西,它就会按原样返回,这是所需的行为。这是因为它失败的标准#2并没有得到grabbed

    • 否则,preg_replace的第二个参数表示我们会抓取我们抓取的文字($1),然后追加.mp3

    街上的字是真实的。你真的应该验证文件数据实际上是一个mp3。

答案 2 :(得分:1)

您可能需要查看pathinfo()函数,它可以为您提供各种文件名。