Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[PHP] как читать из STDIN или установить на него timeout?

526
29 декабря 2002 года
advisor
44 / / 20.03.2000
php не хочет ставить stream_set_timeout() на STDIN!
socket_select() не предлогать - отключена!
Код:
//код написан по память - но суть такая
$stdin = fopen(\'php://stdin\', \'r\');
stream_set_timeout($stdin, 0, 10); //здесь ругается
stream_set_timeout($socket, 0, 10);
while(!feof($socket))
{
   $out = fread($stdin, 2048);
   if($out)
   {
      fwrite($socket, $out);
   }
   $out = fread($socket, 2048);
   if($out)
   {
     echo $out;
   }
}
250
30 декабря 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by advisor
php не хочет ставить stream_set_timeout() на STDIN!
socket_select() не предлогать - отключена!
Код:
//код написан по память - но суть такая
$stdin = fopen(\'php://stdin\', \'r\');
stream_set_timeout($stdin, 0, 10); //здесь ругается
stream_set_timeout($socket, 0, 10);
while(!feof($socket))
{
   $out = fread($stdin, 2048);
   if($out)
   {
      fwrite($socket, $out);
   }
   $out = fread($socket, 2048);
   if($out)
   {
     echo $out;
   }
}


А что это за фу-ция такая интересная(stream_set_timeout) ???
Я ее почемуто в мануале не нашел..

526
30 декабря 2002 года
advisor
44 / / 20.03.2000
А что это за фу-ция такая интересная(stream_set_timeout) ???
Я ее почемуто в мануале не нашел..

This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.
250
30 декабря 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by advisor
А что это за фу-ция такая интересная(stream_set_timeout) ???
Я ее почемуто в мануале не нашел..

This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.


Мда в моем мануале ее нет.. ,на пхп нетр нашел ..
А что он тебе выдает то какую ошибку.. ?

526
30 декабря 2002 года
advisor
44 / / 20.03.2000
на stream_set_timeout() ругается:
Fatal error: Call to undefined function: stream_set_timeout() in /timeout.php on line 3

но т.к. socket_set_timeout -- Alias for stream_set_timeout() я использую её а на неё пишет:
Warning: socket_set_timeout(): supplied resource is not a valid File-Handle resource in /timeout.php on line 4
250
31 декабря 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by advisor
на stream_set_timeout() ругается:
Fatal error: Call to undefined function: stream_set_timeout() in /timeout.php on line 3

но т.к. socket_set_timeout -- Alias for stream_set_timeout() я использую её а на неё пишет:
Warning: socket_set_timeout(): supplied resource is not a valid File-Handle resource in /timeout.php on line 4


НУ как ты можешь заметить твоя версия пхп, как и мой мануал не в курсе про эту фу-цию..
КАкая у тебя версия. php (поддержка вроде только с 4.3) ?

526
31 декабря 2002 года
advisor
44 / / 20.03.2000
пхп ругается не на socket_set_timeout() а на файловую переменную!
250
02 января 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by advisor
пхп ругается не на socket_set_timeout() а на файловую переменную!


socket_set_timeout - Ее просто как бы в твоих исходниках и нет, так что , он на неее и не ругается.. (привиди исходники с ней!!)
stream_set_timeout - такой функциии он просто незнает, вот и вылетает.. (ФАТАЛ ЕРОРР)

526
02 января 2003 года
advisor
44 / / 20.03.2000
я уже приводил то что пишел php если в том коде что я привёл заменяю stream_set_timeout() на socket_set_timeout()!

Warning: socket_set_timeout(): supplied resource is not a valid File-Handle resource in /timeout.php on line 4
250
02 января 2003 года
Joker
1.4K / / 20.02.2000
Из мануала:

To ease working in the shell environment, the following constants are defined:

Table 25-2. CLI specific Constants

Constant Description
STDIN An already opened stream to stdin. This saves opening it with $stdin = fopen('php://stdin', 'r');


STDOUT An already opened stream to stdout. This saves opening it with $stdout = fopen('php://stdout', 'w');


STDERR An already opened stream to stdout. This saves opening it with $stderr = fopen('php://stderr', 'w');




Given the above, you don't need to open e.g. a stream for stderr yourself but simply use the constant instead of the stream resource: php -r 'fwrite(STDERR, "stderr\n");'

You do not need to explicitly close these streams, this is automatically done by PHP.

А зачем ты задержку ставишь ??
526
02 января 2003 года
advisor
44 / / 20.03.2000
к чему эта вставка из мануала?
STDIN - у меня не инициализирована поэтому делаю fopen()

задержку ставлю что-бы скрипт не застревал на fread($stdin) если не посылаются данные в STDIN!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог