fruffl icon

Class Str (bcfu)

fruffl | 10/09/15 11:30:43 AM UTC | 0 ⭐ | 334 👁️ | Never ⏰ | []
PHP |

30.6 KB

|

None

|

0 👍

/

0 👎

<?PHP
    namespace ILLI\Core\Util;
    use ILLI\Core\Std\DefaultStatic\__import_IDefaultStatic;
    use ILLI\Core\Std\IDefaultStatic;
    use ILLI\Core\Util\Arr;
    
    class Str implements IDefaultStatic
    {
        use __import_IDefaultStatic;
        
        #:php:
        static function explode($__string, $__delimiter = __str::SPACE, $__limit = NULL)
        {
            return 0x02 >= func_num_args()
                ? explode($__delimiter, $__string)
                : explode($__delimiter, $__string, $__limit);
        }
        
        static function f($__format, ...$__data)
        {
            $a = func_get_args();
            return sprintf(...$a);
        }
        
        static function join(array $__data, $__delimiter = __str::DEVOID)
        {
            return join($__delimiter, $__data);
        }
        
        static function len($__string)
        {
            return strlen($__string);
        }
        
        static function lc($__string)
        {
            return strtolower($__string);
        }
        
        static function lcf($__string)
        {
            return ucfirst($__string);
        }
        
        static function lcw($__string)
        {
            return ucwords($__string);
        }
        
        static function pad($__string, $__length, $__delimiter, $__case)
        {
            return str_pad($__string, $__length, $__delimiter, $__case);
        }
        
        static function pos($__string, $__needle, $__offset = 0x00)
        {
            return strpos($__string, $__needle, $__offset);
        }
        
        static function pregMatch($__string, $__pattern, $__flag = 0x00, $__offset = 0x00)
        {
            if(0x02 >= func_num_args())
                return preg_match($__pattern, $__string);
            
            preg_match($__pattern, $__string, $matches, $__flag, $__offset);
            return $matches;
        }
        
        static function split($__string, $__length = 0x01)
        {
            return str_split($__string, $__length);
        }
        
        static function sub($__string, $__start, $__length = NULL)
        {
            return 0x02 >= func_num_args()
                ? substr($__string, $__start)
                : substr($__string, $__start, $__length);
        }
        
        static function tr($__string, $__from, $__to = NULL)
        {
            return 0x02 >= func_num_args()
                ? strtr($__string, $__from)
                : strtr($__string, $__from, $__to);
        }
        
        static function uc($__string)
        {
            return strtoupper($__string);
        }
        
        static function ucf($__string)
        {
            return ucfirst($__string);
        }
        
        static function ucw($__string)
        {
            return ucwords($__string);
        }
        
        static function repeat($__string, $__length)
        {
            return str_repeat($__string, $__length);
        }
        
        static function replace($__string, $__search, $__replace)
        {
            return str_replace($__search, $__replace, $__string);
        }
        #::
        
        #:mod:
        static function prependBom($__string = NULL)
        {
            return chr(255).chr(254).$__string;
        }
        
        static function hex($__integer)
        {
            return static::pat('0x{:hex}', ['hex' => dechex((int) $__integer)]);
        }
        
        static function x($__integer)
        {
            return static::pat('\x{:hex}', ['hex' => dechex((int) $__integer)]);
        }
        #::
        
        #:tests:
        static function isUtf8($__mixed)
        {
            return TRUE === is_string($__mixed) && 0x01 === preg_match('/^.*$/us', $__mixed);
        }
        #::
        
        #:aggregate:
        static function concat($__stringN)
        {
            return static::join(func_get_args(), __str::DEVOID);
        }
        
        static function lcfi($__string)
        {
            return static::lcf(static::uc($__string));
        }
        
        static function lcwi($__string)
        {
            return static::lcw(static::uc($__string));
        }
        
        static function match($__string, $__pattern, array $__options = [])
        {
            $__options += [
                'matches'   => FALSE,
                'mod'       => '',
                'flag'      => 0,
                'offset'    => 0,
                'escapeSlash'   => TRUE,
                'format'    => FALSE
            ];
            
            if(FALSE !== $__options['format'])
                $__pattern = static::insert($__pattern, $__options['format']);
            
            $__pattern = static::concat
            (
                __str::SLASH,
                TRUE === $__options['escapeSlash']
                    ? static::replace($__pattern, __str::SLASH, __str::ESLASH)
                    : $__pattern,
                __str::SLASH,
                $__options['mod']
            );
            
            return FALSE === $__options['matches']
                ? (bool) static::pregMatch($__pattern, $__string)
                : static::pregMatch($__pattern, $__string, $__options['flag'], $__options['offset']);
        }
        
        static function ucfi($__string)
        {
            return static::ucf(static::lc($__string));
        }
        
        static function ucwi($__string)
        {
            return static::ucw(static::lc($__string));
        }
        #::
        
        #:chr:
        static function insert($__string, $__insert, $__index, $__concat = TRUE, $__length = 0x01)
        {
            $r = static::split($__string, $__length);
            array_splice($r, $__index, 0x00, $__insert);
            return TRUE === $__concat ? static::join($r) : $r;
        }
        
        static function range($__string, $__index, $__count, $__concat = TRUE, $__length = 0x01)
        {
            $r = static::split($__string, $__length);
            
            return TRUE === $__concat
                ? [
                    0x00 => static::join(array_slice($r, 0x00, $__index)),
                    0x01 => static::join(array_slice($r, $__index, $__count)),
                    0x02 => static::join(array_slice($r, $__index + $__count))
                ]
                : [
                    0x00 => array_slice($r, 0x00, $__index),
                    0x01 => array_slice($r, $__index, $__count),
                    0x02 => array_slice($r, $__index + $__count)
                ];
        }
        
        static function remove($__string, $__index, $__concat = TRUE, $__length = 0x01)
        {
            $r = static::split($__string, $__length);
            unset($r[$__index]);
            return TRUE === $__concat ? static::join($r) : $r;
        }
        
        static function removeRange($__string, $__index, $__count, $__concat = TRUE, $__length = 0x01)
        {
            $r = static::range($__string, $__index, $__count, TRUE, $__length);
            unset($r[0x01]);
            return TRUE === $__concat ? static::join($r) : $r;
        }
        
        static function reverse($__string, $__concat = TRUE, $__length = 0x01)
        {
            $r = array_reverse(static::split($__string, $__length));
            return TRUE === $__concat ? static::join($r) : $r;
        }
        
        static function reverseRange($__string, $__index, $__count, $__concat = TRUE, $__length = 0x01)
        {
            $r = static::range($__string, $__index, $__count, FALSE, $__length);
            
            $r[0x01] = array_reverse($r[0x01]);
            
            $r[0x00] = static::join($r[0x00]);
            $r[0x01] = static::join($r[0x01]);
            $r[0x02] = static::join($r[0x02]);
            
            return TRUE === $__concat ? static::join($r) : $r;
        }
        #::
        
        #:sequence:
        static function insertAt($__string, $__delimiter, $__insert, $__index, $__concat = TRUE, $__limit = NULL)
        {
            $r = 0x05 >= func_num_args()
                ? static::explode($__string, $__delimiter)
                : static::explode($__string, $__delimiter, $__limit);
            
            array_splice($r, $__index, 0x00, $__insert);
            return TRUE === $__concat ? static::join($r, $__delimiter) : $r;
        }
        
        static function rangeAt($__string, $__delimiter, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            $r = 0x05 >= func_num_args()
                ? static::explode($__string, $__delimiter)
                : static::explode($__string, $__delimiter, $__limit);
            
            return TRUE === $__concat
                ? [
                    0x00 => static::join(array_slice($r, 0x00, $__index), $__delimiter),
                    0x01 => static::join(array_slice($r, $__index, $__count), $__delimiter),
                    0x02 => static::join(array_slice($r, $__index + $__count), $__delimiter)
                ]
                : [
                    0x00 => array_slice($r, 0x00, $__index),
                    0x01 => array_slice($r, $__index, $__count),
                    0x02 => array_slice($r, $__index + $__count)
                ];
        }
        
        static function removeAt($__string, $__delimiter, $__index, $__concat = TRUE, $__limit = NULL)
        {
            $r = 0x03 >= func_num_args()
                ? static::explode($__string, $__delimiter)
                : static::explode($__string, $__delimiter, $__limit);
            
            unset($r[$__index]);
            return TRUE === $__concat ? static::join($r, $__delimiter) : $r;
        }
        
        static function removeRangeAt($__string, $__delimiter, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            $r = 0x05 >= func_num_args()
                ? static::rangeAt($__string, $__delimiter, $__index, $__count, TRUE)
                : static::rangeAt($__string, $__delimiter, $__index, $__count, TRUE, $__limit);
            
            unset($r[0x01]);
            return TRUE === $__concat ? static::join($r, $__delimiter) : $r;
        }
        
        static function reverseAt($__string, $__delimiter, $__concat = TRUE, $__limit = NULL)
        {
            $r = 0x03 >= func_num_args()
                ? static::explode($__string, $__delimiter)
                : static::explode($__string, $__delimiter, $__limit);
            
            $r = array_reverse($r);
            return TRUE === $__concat ? static::join($r, $__delimiter) : $r;
        }
        
        static function reverseRangeAt($__string, $__delimiter, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            $r = 0x05 >= func_num_args()
                ? static::rangeAt($__string, $__delimiter, $__index, $__count, FALSE)
                : static::rangeAt($__string, $__delimiter, $__index, $__count, FALSE, $__limit);
            
            $r[0x01] = array_reverse($r[0x01]);
            
            $r[0x00] = static::join($r[0x00], $__delimiter);
            $r[0x01] = static::join($r[0x01], $__delimiter);
            $r[0x02] = static::join($r[0x02], $__delimiter);
            
            return TRUE === $__concat ? static::join($r, $__delimiter) : $r;
        }
        #::
        
        #:insertAt:
        static function insertAtDir($__string, $__insert, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::insertAt($__string, __str::DIR, $__insert, $__index, $__concat)
                : static::insertAt($__string, __str::DIR, $__insert, $__index, $__concat, $__limit);
        }
        
        static function insertAtDot($__string, $__insert, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::insertAt($__string, __str::DOT, $__insert, $__index, $__concat)
                : static::insertAt($__string, __str::DOT, $__insert, $__index, $__concat, $__limit);
        }
        
        static function insertAtEoL($__string, $__insert, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::insertAt($__string, __str::EOL, $__insert, $__index, $__concat)
                : static::insertAt($__string, __str::EOL, $__insert, $__index, $__concat, $__limit);
        }
        
        static function insertAtMinus($__string, $__insert, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::insertAt($__string, __str::MINUS, $__insert, $__index, $__concat)
                : static::insertAt($__string, __str::MINUS, $__insert, $__index, $__concat, $__limit);
        }
        
        static function insertAtPath($__string, $__insert, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::insertAt($__string, __str::PATH, $__insert, $__index, $__concat)
                : static::insertAt($__string, __str::PATH, $__insert, $__index, $__concat, $__limit);
        }
        
        static function insertAtPlus($__string, $__insert, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::insertAt($__string, __str::PLUS, $__insert, $__index, $__concat)
                : static::insertAt($__string, __str::PLUS, $__insert, $__index, $__concat, $__limit);
        }
        
        static function insertAtSlash($__string, $__insert, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::insertAt($__string, __str::SLASH, $__insert, $__index, $__concat)
                : static::insertAt($__string, __str::SLASH, $__insert, $__index, $__concat, $__limit);
        }
        
        static function insertAtSpace($__string, $__insert, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::insertAt($__string, __str::SPACE, $__insert, $__index, $__concat)
                : static::insertAt($__string, __str::SPACE, $__insert, $__index, $__concat, $__limit);
        }
        
        static function insertAtUnderscore($__string, $__insert, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::insertAt($__string, __str::UNDERSCORE, $__insert, $__index, $__concat)
                : static::insertAt($__string, __str::UNDERSCORE, $__insert, $__index, $__concat, $__limit);
        }
        #::
        
        #:rangeAt:
        static function rangeAtDir($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::rangeAt($__string, __str::DIR, $__index, $__count, $__concat)
                : static::rangeAt($__string, __str::DIR, $__index, $__count, $__concat, $__limit);
        }
        
        static function rangeAtDot($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::rangeAt($__string, __str::DOT, $__index, $__count, $__concat)
                : static::rangeAt($__string, __str::DOT, $__index, $__count, $__concat, $__limit);
        }
        
        static function rangeAtEoL($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::rangeAt($__string, __str::EOL, $__index, $__count, $__concat)
                : static::rangeAt($__string, __str::EOL, $__index, $__count, $__concat, $__limit);
        }
        
        static function rangeAtMinus($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::rangeAt($__string, __str::MINUS, $__index, $__count, $__concat)
                : static::rangeAt($__string, __str::MINUS, $__index, $__count, $__concat, $__limit);
        }
        
        static function rangeAtPath($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::rangeAt($__string, __str::PATH, $__index, $__count, $__concat)
                : static::rangeAt($__string, __str::PATH, $__index, $__count, $__concat, $__limit);
        }
        
        static function rangeAtPlus($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::rangeAt($__string, __str::PLUS, $__index, $__count, $__concat)
                : static::rangeAt($__string, __str::PLUS, $__index, $__count, $__concat, $__limit);
        }
        
        static function rangeAtSlash($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::rangeAt($__string, __str::SLASH, $__index, $__count, $__concat)
                : static::rangeAt($__string, __str::SLASH, $__index, $__count, $__concat, $__limit);
        }
        
        static function rangeAtSpace($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::rangeAt($__string, __str::SPACE, $__index, $__count, $__concat)
                : static::rangeAt($__string, __str::SPACE, $__index, $__count, $__concat, $__limit);
        }
        
        static function rangeAtUnderscore($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::rangeAt($__string, __str::UNDERSCORE, $__index, $__count, $__concat)
                : static::rangeAt($__string, __str::UNDERSCORE, $__index, $__count, $__concat, $__limit);
        }
        #::
        
        #:removeAt:
        static function removeAtDir($__string, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x03 >= func_num_args()
                ? static::removeAt($__string, __str::DIR, $__index, $__concat)
                : static::removeAt($__string, __str::DIR, $__index, $__concat, $__limit);
        }
        
        static function removeAtDot($__string, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x03 >= func_num_args()
                ? static::removeAt($__string, __str::DOT, $__index, $__concat)
                : static::removeAt($__string, __str::DOT, $__index, $__concat, $__limit);
        }
        
        static function removeAtEoL($__string, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x03 >= func_num_args()
                ? static::removeAt($__string, __str::EOL, $__index, $__concat)
                : static::removeAt($__string, __str::EOL, $__index, $__concat, $__limit);
        }
        
        static function removeAtMinus($__string, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x03 >= func_num_args()
                ? static::removeAt($__string, __str::MINUS, $__index, $__concat)
                : static::removeAt($__string, __str::MINUS, $__index, $__concat, $__limit);
        }
        
        static function removeAtPath($__string, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x03 >= func_num_args()
                ? static::removeAt($__string, __str::PATH, $__index, $__concat)
                : static::removeAt($__string, __str::PATH, $__index, $__concat, $__limit);
        }
        
        static function removeAtPlus($__string, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x03 >= func_num_args()
                ? static::removeAt($__string, __str::PLUS, $__index, $__concat)
                : static::removeAt($__string, __str::PLUS, $__index, $__concat, $__limit);
        }
        
        static function removeAtSlash($__string, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x03 >= func_num_args()
                ? static::removeAt($__string, __str::SLASH, $__index, $__concat)
                : static::removeAt($__string, __str::SLASH, $__index, $__concat, $__limit);
        }
        
        static function removeAtSpace($__string, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x03 >= func_num_args()
                ? static::removeAt($__string, __str::SPACE, $__index, $__concat)
                : static::removeAt($__string, __str::SPACE, $__index, $__concat, $__limit);
        }
        
        static function removeAtUnderscore($__string, $__index, $__concat = TRUE, $__limit = NULL)
        {
            return 0x03 >= func_num_args()
                ? static::removeAt($__string, __str::UNDERSCORE, $__index, $__concat)
                : static::removeAt($__string, __str::UNDERSCORE, $__index, $__concat, $__limit);
        }
        #::
        
        #:removeRangeAt:
        static function removeRangeAtDir($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::removeRangeAt($__string, __str::DIR, $__index, $__count, $__concat)
                : static::removeRangeAt($__string, __str::DIR, $__index, $__count, $__concat, $__limit);
        }
        
        static function removeRangeAtDot($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::removeRangeAt($__string, __str::DOT, $__index, $__count, $__concat)
                : static::removeRangeAt($__string, __str::DOT, $__index, $__count, $__concat, $__limit);
        }
        
        static function removeRangeAtEoL($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::removeRangeAt($__string, __str::EOL, $__index, $__count, $__concat)
                : static::removeRangeAt($__string, __str::EOL, $__index, $__count, $__concat, $__limit);
        }
        
        static function removeRangeAtMinus($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::removeRangeAt($__string, __str::MINUS, $__index, $__count, $__concat)
                : static::removeRangeAt($__string, __str::MINUS, $__index, $__count, $__concat, $__limit);
        }
        
        static function removeRangeAtPath($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::removeRangeAt($__string, __str::PATH, $__index, $__count, $__concat)
                : static::removeRangeAt($__string, __str::PATH, $__index, $__count, $__concat, $__limit);
        }
        
        static function removeRangeAtPlus($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::removeRangeAt($__string, __str::PLUS, $__index, $__count, $__concat)
                : static::removeRangeAt($__string, __str::PLUS, $__index, $__count, $__concat, $__limit);
        }
        
        static function removeRangeAtSlash($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::removeRangeAt($__string, __str::SLASH, $__index, $__count, $__concat)
                : static::removeRangeAt($__string, __str::SLASH, $__index, $__count, $__concat, $__limit);
        }
        
        static function removeRangeAtSpace($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::removeRangeAt($__string, __str::SPACE, $__index, $__count, $__concat)
                : static::removeRangeAt($__string, __str::SPACE, $__index, $__count, $__concat, $__limit);
        }
        
        static function removeRangeAtUnderscore($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::removeRangeAt($__string, __str::UNDERSCORE, $__index, $__count, $__concat)
                : static::removeRangeAt($__string, __str::UNDERSCORE, $__index, $__count, $__concat, $__limit);
        }
        #::
        
        #:reverseAt:
        static function reverseAtDir($__string, $__concat = TRUE, $__limit = NULL)
        {
            return 0x02 >= func_num_args()
                ? static::reverseAt($__string, __str::DIR, $__concat)
                : static::reverseAt($__string, __str::DIR, $__concat, $__limit);
        }
        
        static function reverseAtDot($__string, $__concat = TRUE, $__limit = NULL)
        {
            return 0x02 >= func_num_args()
                ? static::reverseAt($__string, __str::DOT, $__concat)
                : static::reverseAt($__string, __str::DOT, $__concat, $__limit);
        }
        
        static function reverseAtEoL($__string, $__concat = TRUE, $__limit = NULL)
        {
            return 0x02 >= func_num_args()
                ? static::reverseAt($__string, __str::EOL, $__concat)
                : static::reverseAt($__string, __str::EOL, $__concat, $__limit);
        }
        
        static function reverseAtMinus($__string, $__concat = TRUE, $__limit = NULL)
        {
            return 0x02 >= func_num_args()
                ? static::reverseAt($__string, __str::MINUS, $__concat)
                : static::reverseAt($__string, __str::MINUS, $__concat, $__limit);
        }
        
        static function reverseAtPath($__string, $__concat = TRUE, $__limit = NULL)
        {
            return 0x02 >= func_num_args()
                ? static::reverseAt($__string, __str::PATH, $__concat)
                : static::reverseAt($__string, __str::PATH, $__concat, $__limit);
        }
        
        static function reverseAtPlus($__string, $__concat = TRUE, $__limit = NULL)
        {
            return 0x02 >= func_num_args()
                ? static::reverseAt($__string, __str::PLUS, $__concat)
                : static::reverseAt($__string, __str::PLUS, $__concat, $__limit);
        }
        
        static function reverseAtSlash($__string, $__concat = TRUE, $__limit = NULL)
        {
            return 0x02 >= func_num_args()
                ? static::reverseAt($__string, __str::SLASH, $__concat)
                : static::reverseAt($__string, __str::SLASH, $__concat, $__limit);
        }
        
        static function reverseAtSpace($__string, $__concat = TRUE, $__limit = NULL)
        {
            return 0x02 >= func_num_args()
                ? static::reverseAt($__string, __str::SPACE, $__concat)
                : static::reverseAt($__string, __str::SPACE, $__concat, $__limit);
        }
        
        static function reverseAtUnderscore($__string, $__concat = TRUE, $__limit = NULL)
        {
            return 0x02 >= func_num_args()
                ? static::reverseAt($__string, __str::UNDERSCORE, $__concat)
                : static::reverseAt($__string, __str::UNDERSCORE, $__concat, $__limit);
        }
        #::
        
        #:reverseRangeAt:
        static function reverseRangeAtDir($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::reverseRangeAt($__string, __str::DIR, $__index, $__count, $__concat)
                : static::reverseRangeAt($__string, __str::DIR, $__index, $__count, $__concat, $__limit);
        }
        
        static function reverseRangeAtDot($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::reverseRangeAt($__string, __str::DOT, $__index, $__count, $__concat)
                : static::reverseRangeAt($__string, __str::DOT, $__index, $__count, $__concat, $__limit);
        }
        
        static function reverseRangeAtEoL($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::reverseRangeAt($__string, __str::EOL, $__index, $__count, $__concat)
                : static::reverseRangeAt($__string, __str::EOL, $__index, $__count, $__concat, $__limit);
        }
        
        static function reverseRangeAtMinus($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::reverseRangeAt($__string, __str::MINUS, $__index, $__count, $__concat)
                : static::reverseRangeAt($__string, __str::MINUS, $__index, $__count, $__concat, $__limit);
        }
        
        static function reverseRangeAtPath($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::reverseRangeAt($__string, __str::PATH, $__index, $__count, $__concat)
                : static::reverseRangeAt($__string, __str::PATH, $__index, $__count, $__concat, $__limit);
        }
        
        static function reverseRangeAtPlus($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::reverseRangeAt($__string, __str::PLUS, $__index, $__count, $__concat)
                : static::reverseRangeAt($__string, __str::PLUS, $__index, $__count, $__concat, $__limit);
        }
        
        static function reverseRangeAtSlash($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::reverseRangeAt($__string, __str::SLASH, $__index, $__count, $__concat)
                : static::reverseRangeAt($__string, __str::SLASH, $__index, $__count, $__concat, $__limit);
        }
        
        static function reverseRangeAtSpace($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::reverseRangeAt($__string, __str::SPACE, $__index, $__count, $__concat)
                : static::reverseRangeAt($__string, __str::SPACE, $__index, $__count, $__concat, $__limit);
        }
        
        static function reverseRangeAtUnderscore($__string, $__index, $__count, $__concat = TRUE, $__limit = NULL)
        {
            return 0x04 >= func_num_args()
                ? static::reverseRangeAt($__string, __str::UNDERSCORE, $__index, $__count, $__concat)
                : static::reverseRangeAt($__string, __str::UNDERSCORE, $__index, $__count, $__concat, $__limit);
        }
        #::
        
        #:explode:
        static function explodeDir($__string, $__limit = NULL)
        {
            return 0x01 >= func_num_args()
                ? static::explode($__string, __str::DIR)
                : static::explode($__string, __str::DIR, $__limit);
        }
        
        static function explodeDot($__string, $__limit = NULL)
        {
            return 0x01 >= func_num_args()
                ? static::explode($__string, __str::DOT)
                : static::explode($__string, __str::DOT, $__limit);
        }
        
        static function explodeEoL($__string, $__limit = NULL)
        {
            return 0x01 >= func_num_args()
                ? static::explode($__string, __str::EOL)
                : static::explode($__string, __str::EOL, $__limit);
        }
        
        static function explodeMinus($__string, $__limit = NULL)
        {
            return 0x01 >= func_num_args()
                ? static::explode($__string, __str::MINUS)
                : static::explode($__string, __str::MINUS, $__limit);
        }
        
        static function explodePath($__string, $__limit = NULL)
        {
            return 0x01 >= func_num_args()
                ? static::explode($__string, __str::PATH)
                : static::explode($__string, __str::PATH, $__limit);
        }
        
        static function explodePlus($__string, $__limit = NULL)
        {
            return 0x01 >= func_num_args()
                ? static::explode($__string, __str::PLUS)
                : static::explode($__string, __str::PLUS, $__limit);
        }
        
        static function explodeSlash($__string, $__limit = NULL)
        {
            return 0x01 >= func_num_args()
                ? static::explode($__string, __str::SLASH)
                : static::explode($__string, __str::SLASH, $__limit);
        }
        
        static function explodeSpace($__string, $__limit = NULL)
        {
            return 0x01 >= func_num_args()
                ? static::explode($__string, __str::SPACE)
                : static::explode($__string, __str::SPACE, $__limit);
        }
        
        static function explodeUnderscore($__string, $__limit = NULL)
        {
            return 0x01 >= func_num_args()
                ? static::explode($__string, __str::UNDERSCORE)
                : static::explode($__string, __str::UNDERSCORE, $__limit);
        }
        #::
        
        #:join:
        static function joinDir(array $__data)
        {
            return static::join($__data, __str::DIR);
        }
        
        static function joinDot(array $__data)
        {
            return static::join($__data, __str::DOT);
        }
        
        static function joinEoL(array $__data)
        {
            return static::join($__data, __str::EOL);
        }
        
        static function joinMinus(array $__data)
        {
            return static::join($__data, __str::MINUS);
        }
        
        static function joinPath(array $__data)
        {
            return static::join($__data, __str::PATH);
        }
        
        static function joinPlus(array $__data)
        {
            return static::join($__data, __str::PLUS);
        }
        
        static function joinSlash(array $__data)
        {
            return static::join($__data, __str::SLASH);
        }
        
        static function joinSpace(array $__data)
        {
            return static::join($__data, __str::SPACE);
        }
        
        static function joinUnderscore(array $__data)
        {
            return static::join($__data, __str::UNDERSCORE);
        }
        
        static function joinWords(array $__data, $__beforeLast = NULL)
        {
            if(NULL === $__beforeLast || 0x01 >= count($__data))
                return static::join($__data, __str::COMMA_SPACE);
                
            $l = array_pop($__data);
            return static::concatSpace(static::join($__data, __str::COMMA_SPACE), $__beforeLast, $l);
        }
        #::
        
        #:concat:
        static function concatDir($__stringN)
        {
            return static::joinDir(func_get_args());
        }
        
        static function concatDot($__stringN)
        {
            return static::joinDot(func_get_args());
        }
        
        static function concatEoL($__stringN)
        {
            return static::joinEoL(func_get_args());
        }
        
        static function concatPath($__stringN)
        {
            return static::joinPath(func_get_args());
        }
        
        static function concatPlus($__stringN)
        {
            return static::joinPlus(func_get_args());
        }
        
        static function concatSlash($__stringN)
        {
            return static::joinSlash(func_get_args());
        }
        
        static function concatSpace($__stringN)
        {
            return static::joinSpace(func_get_args());
        }
        
        static function concatUnderscore($__stringN)
        {
            return static::joinUnderscore(func_get_args());
        }
        #::
        
        #:pad:
        static function leftPad($__string, $__length, $__delimiter)
        {
            return static::pad($__string, $__length, $__delimiter, STR_PAD_LEFT);
        }
        
        static function leftPadDot($__string, $__length)
        {
            return static::leftPad($__string, $__length, __str::DOT);
        }
        
        static function leftPadSpace($__string, $__length)
        {
            return static::leftPad($__string, $__length, __str::SPACE);
        }
        
        static function rightPad($__string, $__length, $__delimiter)
        {
            return static::pad($__string, $__length, $__delimiter, STR_PAD_RIGHT);
        }
        
        static function rightPadDot($__string, $__length)
        {
            return static::rightPad($__string, $__length, __str::DOT);
        }
        
        static function rightPadSpace($__string, $__length)
        {
            return static::rightPad($__string, $__length, __str::SPACE);
        }
        #::
        
        #:repeat:
        static function repeatDot($__length)
        {
            return static::repeat(__str::DOT, $__length);
        }
        
        static function repeatEoL($__length)
        {
            return static::repeat(__str::EOL, $__length);
        }
        
        static function repeatSpace($__length)
        {
            return static::repeat(__str::SPACE, $__length);
        }
        
        static function repeatTab($__length)
        {
            return static::repeat(chr(__chr::TAB), $__length);
        }
        #::
    }

Comments