URL информация

SVadim

Guest
URL информация

Такая задача!
Есть URL:www.films.com/download.php?link=matrix.avi&dat=0012
URL возвращает файл matrix.avi размером в 720 Мб

Мне нужно узнать:
1.Имя файла
2.Размер файл
3.Поддерживает ли сервер докачку

Хотелось бы использовать один метод для http, ftp, ftps, https

Заранее благодарен
 

Tor

Новичок
и что тут "продвинутого"?

fopen/fsockopen

и смотришь на заголовки
 

SVadim

Guest
fopen не возвращает информацию о файле, а только читает содержимое файла. Если я не прав, поправьте меня.
С fsockopen не хочется играться.
 

SVadim

Guest
Мда, думал дадут дельный совет, а слышу только упреки и насмешки....
 

Tor

Новичок
- мне нужно выкопать яму!
- возьми лопату или экскаватор
- лопатой долго, а экскаватор - нехочу
- почему не хочешь?
- ааа, меня обидели!

ничего не напоминает?
 

SelenIT

IT-лунатик :)
fopen ... читает содержимое файла
Это не так. [m]fopen[/m] делает немного другое. Но узнать размер файла через HTTP она действительно не поможет, поскольку в HTTP нет понятия "файл".
 

SVadim

Guest
Автор оригинала: SelenIT
Это не так. [m]fopen[/m] делает немного другое. Но узнать размер файла через HTTP она действительно не поможет, поскольку в HTTP нет понятия "файл".
а HTTP headers fopen может дать?

-~{}~ 25.03.05 20:17:

От блин, спецами еще называетесь. Экскаваторы с лопатами, я нашел яму, которая присыпана листьями, справился веником.
Типа использовать fopen/fsockopen, это же вам не перл, ПХП. В нем уже заложены такие функции как curl_

Короче я посмотрел тут ваш форум и не нашел ни одной решенной проблемы до конца. Вы только косточки друг другу промываете…

А вот решение моей проблемы. Кому надо пользуйтесь, мне не жалко


<?php
$ch = curl_init(); // create cURL handle (ch)
if (!$ch) {
die("Couldn't initialize a cURL handle");
}
// set some cURL options
$ret = curl_setopt($ch, CURLOPT_URL, "ftp://ftp.tm.odessa.ua/pub/Windows/Office/OpenOffice/OOo_1.1beta_Win32Intel_install.zip");
$ret = curl_setopt($ch, CURLOPT_HEADER, 1);
$ret = curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
$ret = curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
$ret = curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$ret = curl_setopt($ch, CURLOPT_NOBODY, 1);

// execute
$ret = curl_exec($ch);

if (empty($ret)) {
// some kind of an error happened
die(curl_error($ch));
curl_close($ch); // close cURL handler
} else {
$info = curl_getinfo($ch);
curl_close($ch); // close cURL handler

if (empty($info['http_code'])) {
die("No HTTP code was returned");
} else {
// load the HTTP codes
// $http_codes = parse_ini_file("path/to/the/ini/file/I/pasted/above");

// echo results
echo "The server responded: <br />";
echo $info['http_code'] . " " . $http_codes[$info['http_code']];
}

}

?>
 
Сверху