Initial Kohana install
[speedfreak] / Server / system / core / utf8 / strspn.php
1 <?php defined('SYSPATH') OR die('No direct access allowed.');
2 /**
3  * utf8::strspn
4  *
5  * @package    Core
6  * @author     Kohana Team
7  * @copyright  (c) 2007 Kohana Team
8  * @copyright  (c) 2005 Harry Fuecks
9  * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
10  */
11 function _strspn($str, $mask, $offset = NULL, $length = NULL)
12 {
13         if ($str == '' OR $mask == '')
14                 return 0;
15
16         if (utf8::is_ascii($str) AND utf8::is_ascii($mask))
17                 return ($offset === NULL) ? strspn($str, $mask) : (($length === NULL) ? strspn($str, $mask, $offset) : strspn($str, $mask, $offset, $length));
18
19         if ($offset !== NULL OR $length !== NULL)
20         {
21                 $str = utf8::substr($str, $offset, $length);
22         }
23
24         // Escape these characters:  - [ ] . : \ ^ /
25         // The . and : are escaped to prevent possible warnings about POSIX regex elements
26         $mask = preg_replace('#[-[\].:\\\\^/]#', '\\\\$0', $mask);
27         preg_match('/^[^'.$mask.']+/u', $str, $matches);
28
29         return isset($matches[0]) ? utf8::strlen($matches[0]) : 0;
30 }