我有一个网站,用户上传mp3文件并获得链接。所有文件都从表单上传到数据库表。但问题是上传的某些文件不包含.mp3扩展名,我认为这是因为用户使用的设备只保存了名称的音频文件。
这是文件的示例网址:
www.example.com/images/my_audio
如您所见, .mp3 扩展程序缺失。
我希望此链接看起来像这样(带有默认的.mp3扩展名)
www.example.com/images/my_audio.mp3
如何在上传过程中验证图片名称,如果没有扩展名,可以添加扩展程序?
我尝试使用str_replace()
str_replace(" ",",".mp3",$file);
但它似乎不起作用。
有什么想法吗?
答案 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
的第一个参数说
(.+)
,只要$
)不 .mp3
:(?<!\.mp3)
此时有两种可能性。根据用户在文件名末尾是否有.mp3扩展名,我们发现的内容与上述两个条件相符,或者我们没有:
如果您确实拥有XYZ.mp3形式的东西,它就会按原样返回,这是所需的行为。这是因为它失败的标准#2并没有得到grabbed。
否则,preg_replace
的第二个参数表示我们会抓取我们抓取的文字($1
),然后追加.mp3
。
街上的字是真实的。你真的应该验证文件数据实际上是一个mp3。
答案 2 :(得分:1)
您可能需要查看pathinfo()函数,它可以为您提供各种文件名。