🧙Конкурс сказок!
[Archivе]
(OFF) CyberGods_Alice 12 сен 2015

РНР. Автоматическая загрузка файлов на Яндекс.Диск

PHP скрипт
автоматической загрузки файлов на сервис
Яндекс.Диск. Скрипт прост до безобразия,
достаточно передать ему в качестве
параметров логин, пароль и путь к файлу и в
результате он загрузит ваш файл на сервис и
выдаст вам ссылку на него.


1. <?php
2. print uploadFile(ваш_логин, ваш_
пароль, путь_к_файлу). "\n" ;
3.
4. function uploadFile( $login , $password ,
$filename )
5. {
6. $cookie_file = 'cookie.txt' ;
7. $user_agent = 'Mozilla/5.0 (Windows;
U; Windows NT 5.1; ru; rv:1.9.0.6)
Gecko/2009011913 Firefox/3.0.6' ;
8.
9. // логинимся в систему
10. $ch = curl_init ( 'https://
passport.yandex.ru/passport?
mode=auth' );
11.
12. $fields = array();
13. $fields [] = "login=$login" ;
14. $fields [] = "passwd=$password" ;
15. $fields [] = "twoweeks=yes" ;
16. curl_setopt ($ch , CURLOPT_
POSTFIELDS, implode ( '&', $fields ));
17. curl_setopt ($ch , CURLOPT_
RETURNTRANSFER, 1 );
18. curl_setopt ($ch , CURLOPT_
USERAGENT, $user_agent );
19. curl_setopt ($ch , CURLOPT_
FOLLOWLOCATION, 1);
20. curl_setopt ($ch , CURLOPT_
COOKIEJAR, $cookie_file );
21. curl_setopt ($ch , CURLOPT_SSL_
VERIFYPEER, 0 );
22. curl_setopt ($ch , CURLOPT_POST, 1);
23. $result = curl_exec ( $ch );
24. $info = curl_getinfo ( $ch );
25.
26. if ($info [ 'http_code' ] != 200 ) return
false;
27.
28. // запрашиваем сервер для загрузки
файла
29. $url = 'http://narod.yandex.ru/disk/
getstorage/?rnd=' . (mt_rand ( 0,
777777 ) + 777777 );
30.
31. curl_setopt ($ch , CURLOPT_URL, $url );
32. curl_setopt ($ch , CURLOPT_POST, 0);
33. curl_setopt ($ch , CURLOPT_
COOKIEFILE, $cookie_file );
34. $result = curl_exec ( $ch );
35. $info = curl_getinfo ( $ch );
36.
37. if (preg_match ( '/"url":"(.*?)", "hash":
"(.*?)", "purl":"(.*?)"/' , $result, $m)) {
38. $upload_url = $m [ 1];
39. $hash = $m[ 2 ];
40. $purl = $m[ 3 ];
41. } else {
42. return false;
43. }
44.
45. // загружаем файл на сервер
46. $url = $upload_url . '?tid=' . $hash ;
47. $fields = array();
48. $fields [ 'file' ] = '@' . $filename ;
49. curl_setopt ($ch , CURLOPT_URL, $url );
50. curl_setopt ($ch , CURLOPT_REFERER,
'http://narod.yandex.ru/' );
51. curl_setopt ($ch , CURLOPT_POST, 1);
52. curl_setopt ($ch , CURLOPT_
POSTFIELDS, $fields );
53. $result = curl_exec ( $ch );
54. $info = curl_getinfo ( $ch );
55.
56. if ($info [ 'http_code' ] != 200 ) return
false;
57.
58. // print_r($info);
59. // проверяем прогресс бар
60. $url = $purl . '?tid=' . $hash .
'&rnd=' . ( mt_rand ( 0, 777777 ) +
777777 );
61.
62. curl_setopt ($ch , CURLOPT_URL, $url );
63. curl_setopt ($ch , CURLOPT_POST, 0);
64. $result = curl_exec ( $ch );
65.
66. if (!preg_match ( '/"status": "done"/' , $
result, $m)) {
67. return false;
68. }
69.
70. // переходим на страницу и
определяем ссылку
71. $url = 'http://narod.yandex.ru/disk/
last/' ;
72. curl_setopt ($ch , CURLOPT_URL, $url );
73. $result = curl_exec ( $ch );
74. curl_close ($ch );
75.
76. if (preg_match ( '/<span class=\'b\-
fname\'><a href="(.*?)">/' , $result , $m )
) {
77. $fileURL = trim ( $m[ 1]);
78. return $fileURL ;
79. }
80.
81. return false;
82. }
83. ?>
84.

Комментарии (1)

Тема перенесена Dephkaleon из [source] в [архив] (28 сен 2015)
Показать комментарий
Скрыть комментарий
Для добавления комментариев необходимо авторизоваться
[Archivе]
Разрушители
Новая эпическая онлайн-игра от Овермобайл. Битвы...
Тема: Светлая | Тёмная
Версия: Mobile | Lite | Touch | Доступно в Google Play