Реклама на сайте Advertise with us
Тема: Ну И Скриптик... :-/ Расширенный поиск по форуму
 
Внимание! В связи с устареванием топика эта страница была взята из кэша.
Автор Сообщение
Информация о пользователе Marta


Зарегистрирован: 22.12.03
Сообщения: 60
Ссылка на сообщениеДобавлено: 20/01/04 в 03:12     

Дело в том, что я пишу некий скрипт на пхп и встала перед вот какой проблемой:
я загружаю файл с другого сервака и пишу:

Код:
$file=file("http://levyhost.nah/text.asp?a=1&b=2&c=3&text=KissMyAss");

потом достаю нужную инфу и без проблем, но
когда текст "KissMyAss" становиться по-длинее типа "IWillFuckYouErvryDayUntilYouDie", то сервер естсественно начинает ругаться, мол длинная очень строка.
Что мне делать, как передать длинный текст в этом случае asp-шнику на др. серваке, ведь я не могу передать переменной, т.к. напрямую я эту страницу не загружаю, да мне это и не надо!
Как выйти из этой ситуации?

K началу

 
Информация о пользователе ivango


Зарегистрирован: 09.11.02
Сообщения: 823
Ссылка на сообщениеДобавлено: 20/01/04 в 05:21     

Функции fsockopen, fputs, fgets, а так же изучение синтаксиса HTTP-запроса типа GET... и ваши волосы снова мягкие и шелковистые а попка сухая и здоровая.

K началу

 
Информация о пользователе Marta


Зарегистрирован: 22.12.03
Сообщения: 60
Ссылка на сообщениеДобавлено: 20/01/04 в 06:37     

видно ты не совсем понял, мне нужно передать значение переменной с большим текстом, причем должна иммитировать именно процесс GET, но в реале я не я ничего этм методом не передаю, вникни, да и плюс как я могу что-то вставить с помощью приведенных тобой функций, если файл находиться на другом серваке, не моем... think about!

K началу

 
Информация о пользователе Marta


Зарегистрирован: 22.12.03
Сообщения: 60
Ссылка на сообщениеДобавлено: 20/01/04 в 06:59     

мне, если грубо описать надо сделать:

Код:
$file=file("http://levyhost.nah/text.asp?a=1&b=2&c=3&text=KissMyAss");

echo $file[19];

вот...

K началу

 
Информация о пользователе bog


Зарегистрирован: 07.11.02
Сообщения: 1595
Ссылка на сообщениеДобавлено: 20/01/04 в 08:32     

1. у меня вроде работают и длинные строки, так что может просто пишешь неправильно.

2. ивангоу правильно сказал, через сокеты по хорошему такое делать надо, но если не умеешь то...

3. смотри мануал по команде curl - она меньше глючит. Если версия РНР старая то можно делать через exec... и команда в шеле curl...

K началу

 
Информация о пользователе WEBoy


Зарегистрирован: 10.04.03
Сообщения: 68
Ссылка на сообщениеДобавлено: 20/01/04 в 09:46     

У метода GET ограничение на 255 байт, при большей длине получам 414 ошибку (Request-URI Too Long), так что делай через сокеты методом POST.

зы: RFC 2616

K началу

 
Информация о пользователе Marta


Зарегистрирован: 22.12.03
Сообщения: 60
Ссылка на сообщениеДобавлено: 20/01/04 в 09:53     

спасибо, а как бороться вот с этим:
Fatal error: Maximum execution time of 30 seconds exceeded
???

K началу

 
Информация о пользователе WEBoy


Зарегистрирован: 10.04.03
Сообщения: 68
Ссылка на сообщениеДобавлено: 20/01/04 в 10:07     

void set_time_limit (int seconds)

Set the number of seconds a script is allowed to run. If this is reached, the script returns a fatal error. The default limit is 30 seconds or, if it exists, the max_execution_time value defined in the configuration file. If seconds is set to zero, no time limit is imposed.

K началу

 
Информация о пользователе Weber


Зарегистрирован: 03.10.03
Сообщения: 1276
Ссылка на сообщениеДобавлено: 20/01/04 в 10:50     

Marta писал:
спасибо, а как бороться вот с этим:
Fatal error: Maximum execution time of 30 seconds exceeded
???


set_time_limit(0); - в самом начале программы напиши...

K началу

 
Информация о пользователе arachnO +


Зарегистрирован: 25.07.03
Сообщения: 340
Ссылка на сообщениеДобавлено: 20/01/04 в 15:31     

Marta писал:
спасибо, а как бороться вот с этим:
Fatal error: Maximum execution time of 30 seconds exceeded
???


или в php.ini - max_execution_time
или в .htaccess - php_value max_execution_time

или set_time_limit(0) в начале скрипта

K началу

 
Информация о пользователе bog


Зарегистрирован: 07.11.02
Сообщения: 1595
Ссылка на сообщениеДобавлено: 20/01/04 в 16:47     

set_time_limit больше 30ти - первый шаг к убийству сервака icon_smile.gif

если у тебя за 30 секунд не успевает что то просчитать - значит либо скрипт неправильно написан, либо он использует слишком большие обьемы данных.
Так что или переписывай, либо пиши на перле, он для некоторых целей лучше (в частности для работы с сокетами и большим обьемом файлов)

K началу

 
Информация о пользователе Sash


Зарегистрирован: 27.03.03
Сообщения: 249
Ссылка на сообщениеДобавлено: 20/01/04 в 16:54     

bog писал:
set_time_limit больше 30ти - первый шаг к убийству сервака icon_smile.gif

к тому же на реальных хостингах возвожности увеличивать время как правило нету. Так пакостить только на дедике своем можно.

K началу

 
Информация о пользователе arachnO +


Зарегистрирован: 25.07.03
Сообщения: 340
Ссылка на сообщениеДобавлено: 20/01/04 в 16:57     

bog писал:
set_time_limit больше 30ти - первый шаг к убийству сервака icon_smile.gif


не обязательно - опять же зависит от задачи. может это скрипт к которому раз в сутки обращаются и он генерить кучу статики. тогда легко может и не хватить 30 секунд.

еще раз ИМХО - для каждой задачи свои условия

K началу

 
Информация о пользователе Yahook


Зарегистрирован: 18.11.01
Сообщения: 1094
Ссылка на сообщениеДобавлено: 20/01/04 в 17:18     

Я как-то сталкивался с похожей проблеммой. Есть вариант установить в max_execution_time какое-нить очень большое число, не знаю правда хорошо это или нет:), но все работало. Или же попытаться разбить твою задачу на несколько мелких, чтобы можно было уложиться в 30 сек.

K началу

 
Информация о пользователе Weber


Зарегистрирован: 03.10.03
Сообщения: 1276
Ссылка на сообщениеДобавлено: 20/01/04 в 19:29     

bog писал:
set_time_limit больше 30ти - первый шаг к убийству сервака icon_smile.gif


У меня скрипт есть... запускается раз в сутки... работает.... минут 20 (!!!) %)))))
Оптимайзил, как мог! %)
На перле, правда....
Причем, только локально, т.е. ничего не качает и не смотрит нигде %)

K началу

 
Информация о пользователе perlmaster


Зарегистрирован: 27.02.03
Сообщения: 455
Ссылка на сообщениеДобавлено: 20/01/04 в 22:08     

1 скрипт кроном - это не страшно, это всего лишь лишний процесс, хоть и кушающий ресурсы, но в одиночку
А вот если столько работают скрипты из-под юзеров - то это пиздец с большой буквы, что видимо и хотел сказать bog.

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 1377
Ссылка на сообщениеДобавлено: 20/01/04 в 22:09     

http://awm.all-sex-links.com/os_url_parser.htm

На, не парься создавать велосипеды.
Класс ПХП для работы скрипта в режиме броузера.

Кстати, я помоему решил проблемму с медленным fsockopen. Протрасив запросы скрипта, пришел к выводу, что сервер ждет некоторое время после принятия данных (Keep-Alive: 300 секунд).
Получается, что Keep-Alive иногда серваками принимается по умолчанию. Тогда делаем так. В моем классе перед соединением добавляем хидер:

Код:

$URL->AddHeader("Connection","close");


Вуаля! fgets шустро забирает ответ и сразу же закрывается сокет.

K началу

 
Информация о пользователе perlmaster


Зарегистрирован: 27.02.03
Сообщения: 455
Ссылка на сообщениеДобавлено: 20/01/04 в 22:52     

Pentarh:
Посмотрел твою тулзу - блин, классная вещь! А как красиво написано, прямо конфетка!
Респект!

Все учицца!

K началу

 
Информация о пользователе Marta


Зарегистрирован: 22.12.03
Сообщения: 60
Ссылка на сообщениеДобавлено: 20/01/04 в 22:59     

Я не совсем поняла, что вы мне на говорили, но по большому счету у меня скрипт выглядит следующим образом:

Код:

<?
$text="I"."Will"."Fuck"."You"."Until"."You"."Die"."That"."is"."All"
$file=file("http://levyhost.nah/text.asp?a=1&b=2&c=3&text=$text");
echo $file[19];
?>

Вот и все, здечсь оптимизировать нечего, дело в том, что я просто передаю строкой этому text.asp некоторые данные, после чего долго жду пока он генериться, а после это из всей сгенерированной страницы (а текста там не мало) ищу только одну строку, вот и уходит время... на генерацию, на поиск строки и т.п....
Вот так, надеюсь вы поняли, что я имела в виду..

K началу

 
Информация о пользователе Marta


Зарегистрирован: 22.12.03
Сообщения: 60
Ссылка на сообщениеДобавлено: 20/01/04 в 23:25     

Извиняюсь, но решила все на палцах рассказать.

А вообще дело обстоит так, я вам поясню для наглядности.
Дано: левый сайт, и на нем асп-шная страница с погодой, которой передаются методом пост дата, страна, город и т.п.
Так вот, я, просто открываю этот уже с генерированный файл, передавая ему строку типа

Код:
$file=file("http://pogoda.com/pogoda.asp&contry=
Russia&city=Moscow&date=10-10-03")


ну и т.п....
так вот, я посылаю эту строку, затем генериться этот файл у них, после чего ищу из всего этого нужную мне строку... и просто ее вывожу, вот и вся суть!

K началу

 
Информация о пользователе perlmaster


Зарегистрирован: 27.02.03
Сообщения: 455
Ссылка на сообщениеДобавлено: 21/01/04 в 01:52     

Marta:
Вам же посоветовали - юзайте сокеты и будет вам щастье прямо оптом!

Код:

$socket=fsockopen("www.pogoda.com",80);
$query_string="contry=Russia&city=Moscow&date=10-10-03";

$query="GET /pogoda.asp?$query_string HTTP/1.0\r\n" .
       "Connection: close\r\n" .
       "Host: www.pogoda.com:80\r\n" .
       "User-Agent: IE icon_smile.gif\r\n\r\n";

fputs($socket,$query);

// тут читаем ответ сокета и парсим как нам угодно

fclose($socket);

K началу

 
Информация о пользователе Marta


Зарегистрирован: 22.12.03
Сообщения: 60
Ссылка на сообщениеДобавлено: 21/01/04 в 09:10     

Огромное всем спасибо!!!!
Вроде начинаю разбираться!

K началу

 
Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!
Внимание! В связи с устареванием топика эта страница была взята из кэша.

Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »