LINUX.ORG.RU
ФорумJob

Нужно написать PHP-скрипт обхода ссылок

 


0

1

Ссылки могут быть как непосредственно на файлы, так и на файлы/каталоги в облачных хранилищах (YandexDisk, GoogleDrive, MailRuCloud, Dropbox).

На входе имеется ссылка, пароль-логин (если нужна Simple-авторизация), регулярка имени файла (если ссылка ведет на каталог).

Нужно, в общем случае - авторизоваться, найти заданный файл, скачать его на локальный диск, и если файл находится в архиве (могут быть zip,rar,7z,tar.gz,tgz) то распаковать его.

Скрипт нужно написать на PHP7 для Linux-окружения, используя следующий шаблон:

$_CNF = $_CNF ?? (object)array(
  'connection' => (object)array( // if connection to external service lost, then
    'retries' => 5,              // reconnect 5 times
    'sleep' => 20,               // wait 20 seconds for next retry
  ),
);

$_PRO = $_PRO ?? [
// 77 - идентификатор группы ссылок
77 => [
// 3 - прямые ссылки на файлы
  3 => [
// 10 - id файла
    10 => [
// [0] - скрипт получения (если сложная авторизация)
      'auth_script',
// [1] - ссылка на файл
      'http://domine.ru/file.dat',
// [2] - имя файла или регулярка имени файла
      null,
// [3] - логин (если пустой, то нет аутентификации)
      'username',
// [4] - пароль
      'password',
// [5,6] - не используются
      null, 0 ],
    11 => [ /* данные другого файла с id 11 */ ],
  ],
// 4 - ссылки на каталоги / файлы в облачных хранили
  4 => [
    15 => [ 'auth_script',
      'https://yadi.sk/d/2329jdsfjd',
      '/.*filename.*\.dat/ui',
      'username', 'password', null, 0 ],
    18 => [],
  ],
],

// 79 - другая группа с прямыми ссылками и облачными
79 => [], ];

// получение файлов по прямым ссылкам
function fetch_files_2() { global $_CNF, $_PRO;
  foreach( $_PRO as $id => $inf ) if( isset( $inf[3] ) ) foreach( $inf[3] as $fid => $arg ) {
    // получить файл и сохранить его во временный каталог
    // если это архив (определять по расширению), то нужно распаковать
    //
    // if( ERROR ) { log() and continue; }
  } return 0;
}

// получение файлов по ссылкам на облачные хранилища
function fetch_files_3() { global $_CNF, $_PRO;
  foreach( $_PRO as $id => $inf ) if( isset( $inf[4] ) ) foreach( $inf[4] as $fid => $arg ) { }
  return 0;
}

Хотелось бы в итоге видеть готовый к боевому использованию компонент обхода ссылок. Оплата по договоренности. Контакт: aladin.it@yandex.ru или +7-925-3420026



Последнее исправление: mrs (всего исправлений: 2)
Ответ на: комментарий от anonymous00

Несложно. Предлагаю 5К рублей за готовый скрипт... и, дополнительно, возможность продолжительного сотрудничества, если будет интересно.

mrs
() автор топика

Уже не актуально.

mrs
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.