【发布时间】:2011-08-06 17:24:01
【问题描述】:
我一直在尝试从 url 获取文件的名称,我发现它很简单,基本名称 直到我来的网址没有真实姓名的迹象,直到下载
这是我找到的链接示例
这里的真名是 youtubedownloadersetup272.exe http://qdrive.net/index.php/page-file_share-choice-download_file-id_file-223658-ce-0
你可以看到它在下载之前没有显示名称。
我找了很多东西,一无所获,不胜感激,如果有人能指点我,谢谢。
很抱歉再次打扰,但我从 download.com 找到了这个链接,我没有使用 curl 设置文件名
<?php
function getFilename($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
$data = curl_exec($ch);
echo $data;
preg_match("#filename=([^\n]+)#is", $data, $matches);
return $matches[1];
}
echo getFilename("http://software-files-l.cnet.com/s/software/11/88/39/66/YouTubeDownloaderSetup272.exe?e=1302969716&h=89b64b6e8e7485eab1e560bbdf68281d&lop=link&ptype=1901&ontid=2071&siteId=4&edId=3&spi=fdc220b131cda22d9d3f715684d064ca&pid=11883966&psid=10647340&fileName=YouTubeDownloaderSetup272.exe");
?>
它用 echo $data 返回这个
HTTP/1.1 200 正常 服务器:阿帕奇 接受范围:字节 内容处置:附件 内容类型:应用程序/下载 年龄:866 日期:2011 年 4 月 16 日星期六 10:16:54 GMT 最后修改时间:格林威治标准时间 2011 年 4 月 8 日星期五 18:04:41 内容长度:4700823 连接:保持活动
如果我理解你给我的脚本它不会工作,因为它没有文件名, 有没有一种方法可以在不需要进行正则表达式或解析 url (YouTubeDownloaderSetup272.exe?e....) 的情况下获取名称,就像你给我的脚本一样?
【问题讨论】:
标签: php url download filenames