/** * Reads a token from the file * * @param object $c pdf_context * * @return mixed */ function pdf_read_token(&$c) { // If there is a token available // on the stack, pop it out and // return it. if (count($c->stack)) { return array_pop($c->stack); } // Strip away any whitespace do { if (!$c->ensure_content()) { return false; } $c->offset += _strspn($c->buffer, " \n\r\t", $c->offset); } while ($c->offset >= $c->length - 1); // Get the first character in the stream $char = $c->buffer[$c->offset++]; switch ($char) { case '[': case ']': case '(': case ')': // This is either an array or literal string // delimiter, Return it return $char; case '<': case '>': // This could either be a hex string or // dictionary delimiter. Determine the // appropriate case and return the token if ($c->buffer[$c->offset] == $char) { if (!$c->ensure_content()) { return false; } $c->offset++; return $char . $char; } else { return $char; } default: // This is "another" type of token (probably // a dictionary entry or a numeric value) // Find the end and return it. if (!$c->ensure_content()) { return false; } while (1) { // Determine the length of the token $pos = _strcspn($c->buffer, " []<>()\r\n\t/", $c->offset); if ($c->offset + $pos <= $c->length - 1) { break; } else { // If the script reaches this point, // the token may span beyond the end // of the current buffer. Therefore, // we increase the size of the buffer // and try again--just to be safe. $c->increase_length(); } } $result = substr($c->buffer, $c->offset - 1, $pos + 1); $c->offset += $pos; return $result; } }
/** * Finds the length of the initial segment not matching mask. * @see http://php.net/strcspn * * @author Harry Fuecks <*****@*****.**> * * @param string input string * @param string mask for search * @param integer start position of the string to examine * @param integer length of the string to examine * @return integer length of the initial segment that contains characters not in the mask */ public static function strcspn($str, $mask, $offset = NULL, $length = NULL) { if (!isset(self::$called[__FUNCTION__])) { require SYSPATH . 'core/utf8/' . __FUNCTION__ . EXT; // Function has been called self::$called[__FUNCTION__] = TRUE; } return _strcspn($str, $mask, $offset, $length); }
public static function strcspn($str, $mask, $offset = NULL, $length = NULL) { if (!isset(UTF8::$called[__FUNCTION__])) { require JsonApiApplication::find_file("utf8", __FUNCTION__); // Function has been called UTF8::$called[__FUNCTION__] = TRUE; } return _strcspn($str, $mask, $offset, $length); }
/** * Finds the length of the initial segment not matching mask. * @see http://php.net/strcspn * * @author Harry Fuecks <*****@*****.**> * * @param string input string * @param string mask for search * @param integer start position of the string to examine * @param integer length of the string to examine * @return integer length of the initial segment that contains characters not in the mask */ public static function strcspn($str, $mask, $offset = NULL, $length = NULL) { require_once dirname(__FILE__) . '/' . __FUNCTION__ . '.php'; return _strcspn($str, $mask, $offset, $length); }
/** * Finds the length of the initial segment not matching mask * * This is a UTF8-aware version of [strcspn](http://php.net/strcspn). * * Example: * ~~~ * $found = UTF8::strcspn($str, $mask); * ~~~ * * @author Harry Fuecks <*****@*****.**> * * @param string $str Input string * @param string $mask Mask for search * @param integer $offset Start position of the string to examine [Optional] * @param integer $length Length of the string to examine [Optional] * * @return integer * * @uses Kohana::find_file */ public static function strcspn($str, $mask, $offset = NULL, $length = NULL) { UTF8::_load(__FUNCTION__); return _strcspn($str, $mask, $offset, $length); }
/** * Finds the length of the initial segment not matching mask. This is a * UTF8-aware version of [strcspn](http://php.net/strcspn). * * $found = UTF8::strcspn($str, $mask); * * @author Harry Fuecks <*****@*****.**> * @param string $str input string * @param string $mask mask for search * @param integer $offset start position of the string to examine * @param integer $length length of the string to examine * @return integer length of the initial segment that contains characters not in the mask */ public static function strcspn($str, $mask, $offset = null, $length = null) { if (!isset(UTF8::$called[__FUNCTION__])) { require Phalcana::$di->get('fs')->findFile('utf8', __FUNCTION__); // Function has been called UTF8::$called[__FUNCTION__] = true; } return _strcspn($str, $mask, $offset, $length); }
/** * Finds the length of the initial segment not matching mask. This is a * UTF8-aware version of [strcspn](http://php.net/strcspn). * * $found = UTF8::strcspn($str, $mask); * * @author Harry Fuecks <*****@*****.**> * @param string $str input string * @param string $mask mask for search * @param integer $offset start position of the string to examine * @param integer $length length of the string to examine * @return integer length of the initial segment that contains characters not in the mask */ public static function strcspn($str, $mask, $offset = NULL, $length = NULL) { if (!isset(self::$called[__FUNCTION__])) { require Kohana::find_file('utf8', __FUNCTION__); // Function has been called self::$called[__FUNCTION__] = TRUE; } return _strcspn($str, $mask, $offset, $length); }