Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2012, 04:46   #1
gefard
Пользователь
 
Регистрация: 26.05.2012
Сообщений: 13
По умолчанию Посоветуйте по загрузке через CURL

вот скрипт суть итак понятна
за 2 дня перекачал 18 гигов файлов, оттуда откуда их можно скачать только пользователю
В общем работает нормально скрипт
Но как всегда есть НО
при размере файла более 100 метров просто происходит зависание какое-то часами висит и грузит этот большой файл (а так в основном файлы по метра 3, просто попадаютя большие)
через фтп смотрю - размеры таких файлов уже не меняютя
а крипт все пашет
в общем че не так?
PHP код:
$sql3 "SELECT count(*) as cnt  FROM ".$prefix."_rss2";
$result2 $db->sql_query($sql3);
        while (
$row $db->sql_fetchrow($result2)) {
               
$zpr $row['cnt'];
               }
if (
$zpr == 0){
echo 
"<center><p>THE END</p></center>";
} else {
$result $db->sql_query("SELECT * FROM ".$prefix."_rss2 limit 6");
 while (
$row $db->sql_fetchrow($result)) { 
 
$id $row['id'];
 
$title $row['title'];
 
$hometext $row['body'];
 
$topic =$row['topicid'];
 
$category $row['category'];
 
$bodytext $row['content'];
preg_match_all('/(<a[^>]*)href=(\"?)([^\s\">]+?)(\"?)([^>]*>)/ismU',$bodytext,$res);
foreach (
$res as $key => $avalue) {
        for(
$i 0$i count($avalue); $i++) 
       
$rest substr($avalue[0], 9, -17);           
 break; 
}
$url2 parse_url$rest);
  
$host $url2['host'];
if (
$host == "сайт.ru"){
   
$ext substr ($reststrrpos ($rest".")); 
 
$name substr ($reststrrpos ($rest"/")+1);
$post_data['login'] = 'логин';
$post_data['pas'] = 'пароль';
foreach ( 
$post_data as $key => $value) {
    
$post_items[] = $key '=' $value;
}
$post_string implode ('&'$post_items);
$curl_connection =
  
curl_init('http://www.сайт.ru');

curl_setopt($curl_connectionCURLOPT_CONNECTTIMEOUT30);
curl_setopt($curl_connectionCURLOPT_USERAGENT,
  
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connectionCURLOPT_RETURNTRANSFERtrue);
curl_setopt($curl_connectionCURLOPT_SSL_VERIFYPEERfalse);
curl_setopt($curl_connectionCURLOPT_POST,true);
curl_setopt($curl_connectionCURLOPT_POSTFIELDS$post_string);
 
curl_setopt ($curl_connectionCURLOPT_URL$rest); 
 
$fp fopen ("download/".$name"w+"); 
 
curl_setopt ($curl_connectionCURLOPT_FILE$fp); 
 
curl_setopt ($curl_connectionCURLOPT_REFERER$rest); 
 
curl_setopt ($curl_connectionCURLOPT_AUTOREFERER1); 
 
curl_exec ($curl_connection); 
 
curl_close ($curl_connection); 
 
fclose ($fp);
     
$aid3 "admin";
            
$aid2 "gefard";    
            
$counter"0";
     
$text2 str_replace($rest"download/".$name$bodytext);
     
$sql "insert into  ".$prefix."_stories set aid ='$aid3', ktank = '$category', informant ='$aid2', title ='$title', time =UNIX_TIMESTAMP(NOW()), counter ='$counter', hometext ='$hometext', bodytext ='$text2', topic ='$topic'";
                    
$db->sql_query$sql );
                    
$db->sql_query("DELETE FROM ".$prefix."_rss2 where id = '$id'");
 } else {
  
$sql "insert into  ".$prefix."_stories set aid ='$aid3', ktank = '$category', informant ='$aid2', title ='$title', time =UNIX_TIMESTAMP(NOW()), counter ='$counter', hometext ='$hometext', bodytext ='$bodytext', topic ='$topic'";
                    
$db->sql_query$sql );
                    
$db->sql_query("DELETE FROM ".$prefix."_rss2 where id = '$id'");
 }
}  
Header("Location: modules.php?name=".$module_name."&file=grabber2");


Последний раз редактировалось gefard; 08.08.2012 в 04:48.
gefard вне форума Ответить с цитированием
Старый 09.08.2012, 23:10   #2
Citsejam
Новичок
Джуниор
 
Регистрация: 09.08.2012
Сообщений: 6
По умолчанию

Хм, никогда не сталкивался, но возможно суть в том что как и при отправке ПОСТ запроса есть ограничение на объем передаваемой информации, также само и на размер файла?
Citsejam вне форума Ответить с цитированием
Старый 10.08.2012, 04:00   #3
gefard
Пользователь
 
Регистрация: 26.05.2012
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Citsejam Посмотреть сообщение
Хм, никогда не сталкивался, но возможно суть в том что как и при отправке ПОСТ запроса есть ограничение на объем передаваемой информации, также само и на размер файла?
В пост запросе всего-то логин и пароль
повторюсь малые файлы 3 - 5 метров кидает быстро
но на 100 метров и более вис какой-то
Ограничение на размер файла? я через этот скрипт закачивал файл на 400 метров, так что с этим тоже норм
Я немного изменил его, точнее поменял местами закрытие файла и закрытие курла

PHP код:
 curl_exec ($curl_connection); 
fclose ($fp); 
 
curl_close ($curl_connection); 
Теперь первым закрывается файл а потом соединение
Начал сегодня перекачку новых файлов 185 шт
подумал что опять зависло, а нет прошло как по маслу
жаль только что не было больших файлов среди них
gefard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постинг в twitter.com через php curl не работает sergeiqwe PHP 1 26.01.2011 20:08
Ошибка при загрузке файла через броузер _PROGRAMM_ PHP 6 24.01.2011 08:52
Как передать заголовки в php через CURL sergeiqwe PHP 1 07.11.2010 21:08
Посоветуйте с отправкой формы через GET! hackPNZ PHP 6 30.12.2009 13:20
Проблемы с POST запросом через cURL LonRv PHP 0 28.12.2009 17:56