note 53538 added to function.trim

From: Date: Sun, 05 Jun 2005 11:01:57 +0000
Subject: note 53538 added to function.trim
Groups: php.notes 
Request: Send a blank email to php-notes+get-89941@lists.php.net to get a copy of this message
fread/fwrite blocks program when no data available. so, you consider use select system call. following is example. <?php /** * * write/read pipe * * @param resource $w_fp write file handle * @param resource $r_fp read file handle * @param string $input * @return string */ function _writeread_pipe(&$w_fp, &$r_fp, $input) { $output = ''; $write_bytes = 0; // while (True) { if (!isset($r_fp) && !isset($w_fp)) break; $read = isset($r_fp) ? array($r_fp) : Null; $write = isset($w_fp) ? array($w_fp) : Null; // select pipes $r = stream_select($read, $write, $except = Null, 30 ); if ($r === False) { return PEAR::raiseError('process timeout'); } // read pipe if (isset($read) && isset($read[0])) { do { $buf = fread($r_fp, 1024); if (strlen($buf) == 0) { fclose($r_fp); $r_fp = Null; break; } $output .= $buf; } while (True); } // write pipe if (isset($write) && isset($write[0])) { $r = fwrite($w_fp, substr($input, $write_bytes)); if ($r === False) { return PEAR::raiseError('process write error'); } $write_bytes += $r; if ($write_bytes == strlen($input)) { fclose($w_fp); $w_fp = Null; } } } return $output; } ?> ---- Manual Page -- http://www.php.net/manual/en/function.trim.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+53538 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+53538&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+53538&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+53538&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+53538&report=yes&reason=useless Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+53538&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+53538&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#89941) next »