Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: считать файл с sendspace.com
 
 автор: Lstasss   (28.03.2007 в 15:57)   письмо автору
 
 

ситуация: есть таблица в БД с адресами файлов на сервере sendspace.com, адреса имеют вид http://sendspace.com/file/{file_id) (http://sendspace.com/file/v4n9zr, например). файлы после заливки через некоторое время (которого я точно не знаю, к сожалению) с сервера удаляются :-(. а заливаем мы много, и они нам нужны.
задача: написать робота, который будет имитировать скачивание файлов.
что я смог сделать сам:
ссылка на файл генерируется не на http://sendspace.com/, а на файл на моём сервере, который с использованием класса Snoopy получает с сервера страницу со ссылкой на файл. нужно заметить, что ссылка генерируется через JavaScript, так что скачивание по клику осуществить мне не удалось. зато удалось сделать переадресацию через тот же JavaScript на тот же файл на сервере с параметром /my_dir/index.php?link={ссылка_на_файл}, только эта ссылка_на_файл - не просто URL, а <a href="URL">file_name</a> :-(. так что параметр чистится и делается вторая переадресация (уже через PHP напрямую на файл).
В итоге всё выглядит красиво - выбираем ссылку в списке, кликаем и через две-три секунды (пока загрузится страница и выполнится JavaScript) вылетает окошко о сохранении файла. :)
Но как я уже сказал, этого мало, ибо нужно организовать весь процесс автоматически, чтобы робот читал таблицу и по ней скачивал файлы.
вот используемый код:


<?
if(isset($_GET['fileid']))
  {
$fileid $_GET['fileid'];
$filename $_GET['filename'];
include 
'Snoopy.class.php';
    
$snoopy = new Snoopy;

$snoopy->fetch("http://www.sendspace.com/file/$fileid");
$content $snoopy->results;

$content str_replace('<script>document.write(link_dec)</script>''<big><b><script>document.write(link_dec)</script></b></big>-hoi-'$content);

$content str_replace('-hoi-'"<script language='JavaScript'><!-- //
window.location.href = 'http://nepopsisty.net/filemanager/uploads/?link=' + link_dec;
// --></script>"
$content);
$content str_replace("<head>""<head><BASE href='http://sendspace.com'"$content);
print 
substr(trim($content), 0strpos($content'<b><i>send</i>space</b> is the best file transfer and exchange'));
  }
elseif(isset(
$_GET['link']))
  {
$link str_replace('http://sendspace.com/%3Ca%20id=%22downlink%22%20href=%22<a id="downlink" href="''' ,$_GET['link']);
$first =  strpos($link'">') + 2;
$second strpos($link'</a>');
$name substr($link$first$second $first);
$link str_replace('<a id="downlink" href="'''str_replace('">'$name '</a>'''$link));

Header('Location: ' $link);
  }
?>

просмотреть работу можно так: http://nepopsisty.net/filemanager/uploads/?fileid=v4n9zr&filename=Maxima.rar

крон на сервере есть, запускать можно раз в 15 минут.

   
 
 автор: Lstasss   (04.04.2007 в 08:25)   письмо автору
 
   для: Lstasss   (28.03.2007 в 15:57)
 

да, жалко, что никто не смог помочь :-(

   
 
 автор: cheops   (04.04.2007 в 12:11)   письмо автору
 
   для: Lstasss   (28.03.2007 в 15:57)
 

Не очень понятно, что вызывает затруднения?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования