Передать большой список на скрипт

enkidy

Guest
Передать большой список на скрипт

Доброе время суток!
У меня есть скрипт, который проверяет ссылки на битость. Многопоточность я в нём организовал, но беда в том, что скрипт должен работать со списками очень большого объёма (больше 10Мб). Подскажите как это лучше организовать?

З.Ы.
Сейчас у меня это выглядит примерно так:
PHP:
$links = $_POST['links'];
$link = explode("\r\n", $links);

//и дальше я их обрабатываю
...
но как я знаю, размер данных передаваемых POST ограничен, и врядли я смогу вставить большой список в textarea...
 

vadim

Guest
enkidy
Cделайте скачку файла.
Или вообще сделать демон, который будет всегда бежать и ему кидать сокетами мессаги с одной ссылкой.
Ограничение ПОСТа зависит от веб-сервера, хотя точно и не помню...
 

enkidy

Guest
Автор оригинала: vadim
enkidy
Cделайте скачку файла.
Или вообще сделать демон, который будет всегда бежать и ему кидать сокетами мессаги с одной ссылкой.
Ограничение ПОСТа зависит от веб-сервера, хотя точно и не помню...
Суть в том, что запросы могут поступать от разных осей, и от *nix и от win. Нужно чтобы передать скрипту список было предельно просто...



Если на сервере ограничение ПОСТ - 50Мб, то мой скрипт будет работать нормально при списках в >10Мб? Т.е. с самим скриптом глюков не будет от таких масштабов?
 

enkidy

Guest
Автор оригинала: Фанат
чувак, ты браузер когда-нибудь видел?
такое впечатление, что нет
Чувак, ты походу сам не вьезжаешь в чём дело.:D
Я про демона имел ввиду...

А так, я разобрался сам, спасибо, что помогли, знатоки...
 

ViJu

Новичок
по-моему так делать нельзя

$links = $_POST['links'];

а что будет если туда будет передано урлов твоего ресурса на 10 мегов

тогда кто-то сдохнет!

урлов твоего ресурса !!!
 

enkidy

Guest
Автор оригинала: ViJu
по-моему так делать нельзя

$links = $_POST['links'];

а что будет если туда будет передано урлов твоего ресурса на 10 мегов

тогда кто-то сдохнет!
Вчера 10 мегов скрипт нормально принял...
 

Gorynych

Посетитель PHP-Клуба
Автор оригинала: enkidy
Чувак, ты походу сам не вьезжаешь в чём дело.:D
Я про демона имел ввиду...

А так, я разобрался сам, спасибо, что помогли, знатоки...
прикольно. А на фига демону передавать данные через $_POST ?
 

enkidy

Guest
Автор оригинала: Фанат
ага, а пост этому демону передаёт Пушкин А.С, наверное =)
Неее... Пушкин устарел... Владимир Владимирович Маяковский! :D

Блин я ваще запутался. Кароче денома в топку, сделал следующим образом:

Список получается постом, там он лежит в переменной. Чтобы взять определённую строку из неё сделал функцию. Вот собственно и всё.
А насчёт упрёков: по существу так никто ведь и не помог (кроме вдима конечно) ;)
 

Фанат

oncle terrible
Команда форума
а, вот как мы уже заговорили.
"пожалуйста".
А что ты сделал для того, чтобы к твоей просьбе отнеслись уважительно?

С чего ты вообще решил, что тему можно закрывать?
А если в неё зайдёт такой же новичок, как ты?
И увидит, что ответ вадима оказался правильным. И подумает, будто файл передаётся не ПОСТОМ, а по-какому-то другому, волшебному протоколу?
Нет уж.
Хоть мы и специалисты никудышные, но будем потихоньку мозгами скрипеть, разбираться.
 

enkidy

Guest
Автор оригинала: Фанат
чувак, ты браузер когда-нибудь видел?
такое впечатление, что нет
У меня тоже есть чувство гордости, и на такие высказывания я не мог реагировать иначе.
Ну не понял сразу, что вадим имелл ввиду, что теперь нападать сразу? Ты прям как я не знаю...
Чтобы к теме отнеслись уважительно? Я задал вопрос, который сформулировал с максимальной чёткостью и уважительностью, или ещё надо добавлять "Уважаемый Фанат позвольте вылизать вам яйца, чтобы вы ответили"? Сидит и смотрит на всех свысока...
Вобщем заканчивай эту полемику...

Насчёт темы (для таких же как я новичков ;) ):
Данные большого размера на скрипт можно передавать методом POST, размер передаваемых данных ограничен сервером (в php.ini post_max_size (узнаём в phpinfo())).
Можно также передать такой список файлом, и дальше уже работать с ним.

Думаю тут любой разберётся.

-~{}~ 07.07.06 13:59:

Автор оригинала: Фанат
а файл будет передавать курьер фирмы DHL?
Кому надо будет тот откроет справочник. Или надо выкладывать код, где написано как это реализовать? Не смеши...
 

Фанат

oncle terrible
Команда форума
ты на вопрос ответь, трибун пламенный
а то за гордость тут все мастера речи толкать.
ты по теме скажи.
тогда и посмотрим - кто чего достоин

-~{}~ 07.07.06 14:00:

код не надо.
просто поделись, по какому протоколу этот файл будет передаваться.
в отличие от текста, как я понимаю.
 

enkidy

Guest
Автор оригинала: Фанат
код не надо.
просто поделись, по какому протоколу этот файл будет передаваться.
в отличие от текста, как я понимаю.
Всё передаётся через POST.

Имеется в виду следующее:
1 способ.
На форме элемент textarea в него вставляется список, жмётся субмит, и методом POST список на скрипт передается. Далее работаем с переменной.

2 способ.
На форме элемент file, там указываем файл на своем компе, который загружается на сервер. Далее работаем с файлом.

З.Ы. А вообще смешно - задал вопрос сам на него и ответь?
 

Фанат

oncle terrible
Команда форума
ага.
то есть, vadim предложил тебе заменить передачу по протоколу POST на передачу по протоколу POST.
Для преодоления ограничений протокола POST.

И это у нас, значит, называется помощью по существу.
 

enkidy

Guest
Автор оригинала: Фанат
ага.
то есть, vadim предложил тебе заменить передачу по протоколу POST на передачу по протоколу POST.
Для преодоления ограничений протокола POST.

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

Вообще у меня в самом начале ошибка была, никто и не заметил. Когда explode создаёт массив, максимальное число элементов этого массива 2^16 если не ошибаюсь ~ 65 000, а у меня списки с 500 000 и более.
 

Gorynych

Посетитель PHP-Клуба
enkidy
Имеется в виду следующее:
1 способ.
На форме элемент textarea в него вставляется список, жмётся субмит, и методом POST список на скрипт передается. Далее работаем с переменной.

2 способ.
На форме элемент file, там указываем файл на своем компе, который загружается на сервер. Далее работаем с файлом.
Казалось бы, при чем тут браузер?

мегов 10 на нормальном канале Вы конечно перешлете, но практически стоит учитывать, что:

а) традиционно выполнение скрипта на сервере через 30 секунд будет прекращено сервером по тайм-ауту

б) не все каналы одинаковы

в) никто не обещал, что файлы не начнут "весить" мегов по 50...
 
Сверху