如何通过 file_get_contents 获取文件扩展名
Posted
技术标签:
【中文标题】如何通过 file_get_contents 获取文件扩展名【英文标题】:How to get file extension by file_get_contents 【发布时间】:2016-11-27 03:25:12 【问题描述】:我想从 url 上传一个视频文件到我的服务器。这是我的代码。
<?php
set_time_limit(0);
$file_name = "upload/myvideo.mp4";
$video_file_url = "http://example.com/somevideo.mp4";
file_put_contents($file_name, file_get_contents($video_file_url));
?>
现在的问题是 $video_file_url 包含不同类型的视频,例如 .mp4、.3gp 或 .flv 。我不知道如何从 file_get_contents 获取文件扩展名,并且 $file_name 总是可能与我在代码中提到的不同。
我应该用 tmpFile.tmp 名称保存这个文件,当从其他服务器复制时,只需用有效的名称和扩展名重命名它?
【问题讨论】:
【参考方案1】:pathinfo() 和 parse_url() 是获取扩展所需要的。
$extension = pathinfo(parse_url($video_file_url, PHP_URL_PATH), PATHINFO_EXTENSION);
顺便说一句,对于您用于下载文件的部分代码,我建议您看看这个问题,因为 file_get_contents() 在这种情况下效率极低:Download File to server from URL
【讨论】:
你是对的,但对我的纯 url 格式感到抱歉,其中 url 包含扩展名。当 url 包含文件扩展名时很有用。以上是关于如何通过 file_get_contents 获取文件扩展名的主要内容,如果未能解决你的问题,请参考以下文章
无法通过 HTTPS 获取 file_get_contents 或 cURL
fopen() file_get_contents() 通过url获取链接内容
如何使用 file_get_contents 在 PHP 中发布数据?
如果发生重定向,如何在 file_get_contents 之后获取真实的 URL?