[PHP] как читать из STDIN или установить на него timeout?
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;
}
}
$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;
}
}
Цитата:
Originally posted by advisor
php не хочет ставить stream_set_timeout() на STDIN!
socket_select() не предлогать - отключена!
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;
}
}
$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) ???
Я ее почемуто в мануале не нашел..
Я ее почемуто в мануале не нашел..
This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.
Цитата:
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.
А что это за фу-ция такая интересная(stream_set_timeout) ???
Я ее почемуто в мануале не нашел..
This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.
Мда в моем мануале ее нет.. ,на пхп нетр нашел ..
А что он тебе выдает то какую ошибку.. ?
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
Цитата:
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
на 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) ?
пхп ругается не на socket_set_timeout() а на файловую переменную!
Цитата:
Originally posted by advisor
пхп ругается не на socket_set_timeout() а на файловую переменную!
пхп ругается не на socket_set_timeout() а на файловую переменную!
socket_set_timeout - Ее просто как бы в твоих исходниках и нет, так что , он на неее и не ругается.. (привиди исходники с ней!!)
stream_set_timeout - такой функциии он просто незнает, вот и вылетает.. (ФАТАЛ ЕРОРР)
Warning: socket_set_timeout(): supplied resource is not a valid File-Handle resource in /timeout.php on line 4
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.
А зачем ты задержку ставишь ??
STDIN - у меня не инициализирована поэтому делаю fopen()
задержку ставлю что-бы скрипт не застревал на fread($stdin) если не посылаются данные в STDIN!