Laravel str 字符串操作

1、Str使用方法

use Illuminate\Support\Str;

class TestController extends Controller
{
        public fucntion test()
        {
                $str = 'abcdefg';
                $str = Str::upper($str);
                return $str;
        }    
}

2、Str的方法

<?php

namespace Illuminate\Support;

use Illuminate\Support\Traits\Macroable;

class Str
{
        use Macroable;

        /**
         * The cache of snake-cased words.
         *
         * @var array
         */
        protected static $snakeCache = [];

        /**
         * The cache of camel-cased words.
         *
         * @var array
         */
        protected static $camelCache = [];

        /**
         * The cache of studly-cased words.
         *
         * @var array
         */
        protected static $studlyCache = [];

        /**
         * 在给定值后返回字符串的其余部分。
         *
         * @param  string  $subject
         * @param  string  $search
         * @return string
         */
        public static function after($subject, $search)
        {
                return $search === '' ? $subject : array_reverse(explode($search, $subject, 2))[0];
        }

        /**
         * 将utf - 8值转换为ASCII。
         *
         * @param  string  $value
         * @param  string  $language
         * @return string
         */
        public static function ascii($value, $language = 'en')
        {
                $languageSpecific = static::languageSpecificCharsArray($language);

                if (! is_null($languageSpecific)) {
                        $value = str_replace($languageSpecific[0], $languageSpecific[1], $value);
                }

                foreach (static::charsArray() as $key => $val) {
                        $value = str_replace($val, $key, $value);
                }

                return preg_replace('/[^\x20-\x7E]/u', '', $value);
        }

        /**
         * 在给定值之前获取字符串的部分。
         *
         * @param  string  $subject
         * @param  string  $search
         * @return string
         */
        public static function before($subject, $search)
        {
                return $search === '' ? $subject : explode($search, $subject)[0];
        }

        /**
         * 将值转换为驼峰。
         *
         * @param  string  $value
         * @return string
         */
        public static function camel($value)
        {
                if (isset(static::$camelCache[$value])) {
                        return static::$camelCache[$value];
                }

                return static::$camelCache[$value] = lcfirst(static::studly($value));
        }

        /**
         * 确定给定的字符串是否包含给定的子字符串。
         *
         * @param  string  $haystack
         * @param  string|array  $needles
         * @return bool
         */
        public static function contains($haystack, $needles)
        {
                foreach ((array) $needles as $needle) {
                        if ($needle !== '' && mb_strpos($haystack, $needle) !== false) {
                                return true;
                        }
                }

                return false;
        }

        /**
         * 确定一个给定的字符串以给定的子字符串结束。
         *
         * @param  string  $haystack
         * @param  string|array  $needles
         * @return bool
         */
        public static function endsWith($haystack, $needles)
        {
                foreach ((array) $needles as $needle) {
                        if (mb_substr($haystack, -mb_strlen($needle)) === (string) $needle) {
                                return true;
                        }
                }

                return false;
        }

        /**
         * 用给定值的单个实例限制字符串
         *
         * @param  string  $value
         * @param  string  $cap
         * @return string
         */
        public static function finish($value, $cap)
        {
                $quoted = preg_quote($cap, '/');

                return preg_replace('/(?:'.$quoted.')+$/u', '', $value).$cap;
        }

        /**
         * 确定给定的字符串是否与给定的模式匹配。
         *
         * @param  string|array  $pattern
         * @param  string  $value
         * @return bool
         */
        public static function is($pattern, $value)
        {
                $patterns = is_array($pattern) ? $pattern : (array) $pattern;

                if (empty($patterns)) {
                        return false;
                }

                foreach ($patterns as $pattern) {
                        // If the given value is an exact match we can of course return true right
                        // from the beginning. Otherwise, we will translate asterisks and do an
                        // actual pattern match against the two strings to see if they match.
                        if ($pattern == $value) {
                                return true;
                        }

                        $pattern = preg_quote($pattern, '#');

                        // Asterisks are translated into zero-or-more regular expression wildcards
                        // to make it convenient to check if the strings starts with the given
                        // pattern such as "library/*", making any string check convenient.
                        $pattern = str_replace('\*', '.*', $pattern);

                        if (preg_match('#^'.$pattern.'\z#u', $value) === 1) {
                                return true;
                        }
                }

                return false;
        }

        /**
         * 将字符串转换为kebab。
         *
         * @param  string  $value
         * @return string
         */
        public static function kebab($value)
        {
                return static::snake($value, '-');
        }

        /**
         * 返回给定字符串的长度。
         *
         * @param  string  $value
         * @param  string  $encoding
         * @return int
         */
        public static function length($value, $encoding = null)
        {
                if ($encoding) {
                        return mb_strlen($value, $encoding);
                }

                return mb_strlen($value);
        }

        /**
         * 限制字符串中的字符数。
         *
         * @param  string  $value
         * @param  int     $limit
         * @param  string  $end
         * @return string
         */
        public static function limit($value, $limit = 100, $end = '...')
        {
                if (mb_strwidth($value, 'UTF-8') <= $limit) {
                        return $value;
                }

                return rtrim(mb_strimwidth($value, 0, $limit, '', 'UTF-8')).$end;
        }

        /**
         * C将给定的字符串转换为小写。
         *
         * @param  string  $value
         * @return string
         */
        public static function lower($value)
        {
                return mb_strtolower($value, 'UTF-8');
        }

        /**
         * 限制字符串中单词的数量。
         *
         * @param  string  $value
         * @param  int     $words
         * @param  string  $end
         * @return string
         */
        public static function words($value, $words = 100, $end = '...')
        {
                preg_match('/^\s*+(?:\S++\s*+){1,'.$words.'}/u', $value, $matches);

                if (! isset($matches[0]) || static::length($value) === static::length($matches[0])) {
                        return $value;
                }

                return rtrim($matches[0]).$end;
        }

        /**
         * 将Class@method样式回调解析为类和方法。
         *
         * @param  string  $callback
         * @param  string|null  $default
         * @return array
         */
        public static function parseCallback($callback, $default = null)
        {
                return static::contains($callback, '@') ? explode('@', $callback, 2) : [$callback, $default];
        }

        /**
         * 得到一个英语单词的复数形式。
         *
         * @param  string  $value
         * @param  int     $count
         * @return string
         */
        public static function plural($value, $count = 2)
        {
                return Pluralizer::plural($value, $count);
        }

        /**
         * 生成一个更真实的“随机”字母数字字符串。
         *
         * @param  int  $length
         * @return string
         */
        public static function random($length = 16)
        {
                $string = '';

                while (($len = strlen($string)) < $length) {
                        $size = $length - $len;

                        $bytes = random_bytes($size);

                        $string .= substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $size);
                }

                return $string;
        }

        /**
         * 按顺序将字符串中的给定值替换为一个数组。
         *
         * @param  string  $search
         * @param  array   $replace
         * @param  string  $subject
         * @return string
         */
        public static function replaceArray($search, array $replace, $subject)
        {
                foreach ($replace as $value) {
                        $subject = static::replaceFirst($search, $value, $subject);
                }

                return $subject;
        }

        /**
         * 替换字符串中给定值的第一个出现。
         *
         * @param  string  $search
         * @param  string  $replace
         * @param  string  $subject
         * @return string
         */
        public static function replaceFirst($search, $replace, $subject)
        {
                if ($search == '') {
                        return $subject;
                }

                $position = mb_strpos($subject, $search);

                if ($position !== false) {
                        return mb_substr($subject, 0, $position).$replace.mb_substr($subject, $position + mb_strlen($search));
                }

                return $subject;
        }

        /**
         * 替换字符串中给定值的最后出现。
         *
         * @param  string  $search
         * @param  string  $replace
         * @param  string  $subject
         * @return string
         */
        public static function replaceLast($search, $replace, $subject)
        {
                $position = mb_strrpos($subject, $search);

                if ($position !== false) {
                        return mb_substr($subject, 0, $position).$replace.mb_substr($subject, $position + mb_strlen($search));
                }

                return $subject;
        }

        /**
         * 以给定值的单个实例开始一个字符串
         *
         * @param  string  $value
         * @param  string  $prefix
         * @return string
         */
        public static function start($value, $prefix)
        {
                $quoted = preg_quote($prefix, '/');

                return $prefix.preg_replace('/^(?:'.$quoted.')+/u', '', $value);
        }

        /**
         * 将给定字符串转换为大写。
         *
         * @param  string  $value
         * @return string
         */
        public static function upper($value)
        {
                return mb_strtoupper($value, 'UTF-8');
        }

        /**
         * 将给定字符串转换为标题用例。
         *
         * @param  string  $value
         * @return string
         */
        public static function title($value)
        {
                return mb_convert_case($value, MB_CASE_TITLE, 'UTF-8');
        }

        /**
         * 得到一个英语单词的单数形式。
         *
         * @param  string  $value
         * @return string
         */
        public static function singular($value)
        {
                return Pluralizer::singular($value);
        }

        /**
         * 从给定的字符串生成一个URL友好的“slug”。
         *
         * @param  string  $title
         * @param  string  $separator
         * @param  string  $language
         * @return string
         */
        public static function slug($title, $separator = '-', $language = 'en')
        {
                $title = static::ascii($title, $language);

                // Convert all dashes/underscores into separator
                $flip = $separator == '-' ? '_' : '-';

                $title = preg_replace('!['.preg_quote($flip).']+!u', $separator, $title);

                // Replace @ with the word 'at'
                $title = str_replace('@', $separator.'at'.$separator, $title);

                // Remove all characters that are not the separator, letters, numbers, or whitespace.
                $title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', mb_strtolower($title));

                // Replace all separator characters and whitespace by a single separator
                $title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title);

                return trim($title, $separator);
        }

        /**
         * 将字符串转换为snake案例
         *
         * @param  string  $value
         * @param  string  $delimiter
         * @return string
         */
        public static function snake($value, $delimiter = '_')
        {
                $key = $value;

                if (isset(static::$snakeCache[$key][$delimiter])) {
                        return static::$snakeCache[$key][$delimiter];
                }

                if (! ctype_lower($value)) {
                        $value = preg_replace('/\s+/u', '', ucwords($value));

                        $value = static::lower(preg_replace('/(.)(?=[A-Z])/u', '$1'.$delimiter, $value));
                }

                return static::$snakeCache[$key][$delimiter] = $value;
        }

        /**
         * 确定给定的字符串是否以给定的子字符串开始。
         *
         * @param  string  $haystack
         * @param  string|array  $needles
         * @return bool
         */
        public static function startsWith($haystack, $needles)
        {
                foreach ((array) $needles as $needle) {
                        if ($needle !== '' && mb_substr($haystack, 0, mb_strlen($needle)) === (string) $needle) {
                                return true;
                        }
                }

                return false;
        }

        /**
         * 将一个值转换为一个大写的大写字母。
         *
         * @param  string  $value
         * @return string
         */
        public static function studly($value)
        {
                $key = $value;

                if (isset(static::$studlyCache[$key])) {
                        return static::$studlyCache[$key];
                }

                $value = ucwords(str_replace(['-', '_'], ' ', $value));

                return static::$studlyCache[$key] = str_replace(' ', '', $value);
        }

        /**
         * 返回由起始和长度参数指定的字符串部分。
         *
         * @param  string  $string
         * @param  int  $start
         * @param  int|null  $length
         * @return string
         */
        public static function substr($string, $start, $length = null)
        {
                return mb_substr($string, $start, $length, 'UTF-8');
        }

        /**
         * 制作一个字符串的第一个字符大写。
         *
         * @param  string  $string
         * @return string
         */
        public static function ucfirst($string)
        {
                return static::upper(static::substr($string, 0, 1)).static::substr($string, 1);
        }

        /**
         * Returns the replacements for the ascii method.
         *
         * Note: Adapted from Stringy\Stringy.
         *
         * @see https://github.com/danielstjules/Stringy/blob/3.1.0/LICENSE.txt
         *
         * @return array
         */
        protected static function charsArray()
        {
                static $charsArray;

                if (isset($charsArray)) {
                        return $charsArray;
                }

                return $charsArray = [
                        '0'    => ['°', '₀', '۰', '0'],
                        '1'    => ['¹', '₁', '۱', '1'],
                        '2'    => ['²', '₂', '۲', '2'],
                        '3'    => ['³', '₃', '۳', '3'],
                        '4'    => ['⁴', '₄', '۴', '٤', '4'],
                        '5'    => ['⁵', '₅', '۵', '٥', '5'],
                        '6'    => ['⁶', '₆', '۶', '٦', '6'],
                        '7'    => ['⁷', '₇', '۷', '7'],
                        '8'    => ['⁸', '₈', '۸', '8'],
                        '9'    => ['⁹', '₉', '۹', '9'],
                        'a'    => ['à', 'á', 'ả', 'ã', 'ạ', 'ă', 'ắ', 'ằ', 'ẳ', 'ẵ', 'ặ', 'â', 'ấ', 'ầ', 'ẩ', 'ẫ', 'ậ', 'ā', 'ą', 'å', 'α', 'ά', 'ἀ', 'ἁ', 'ἂ', 'ἃ', 'ἄ', 'ἅ', 'ἆ', 'ἇ', 'ᾀ', 'ᾁ', 'ᾂ', 'ᾃ', 'ᾄ', 'ᾅ', 'ᾆ', 'ᾇ', 'ὰ', 'ά', 'ᾰ', 'ᾱ', 'ᾲ', 'ᾳ', 'ᾴ', 'ᾶ', 'ᾷ', 'а', 'أ', 'အ', 'ာ', 'ါ', 'ǻ', 'ǎ', 'ª', 'ა', 'अ', 'ا', 'a', 'ä'],
                        'b'    => ['б', 'β', 'ب', 'ဗ', 'ბ', 'b'],
                        'c'    => ['ç', 'ć', 'č', 'ĉ', 'ċ', 'c'],
                        'd'    => ['ď', 'ð', 'đ', 'ƌ', 'ȡ', 'ɖ', 'ɗ', 'ᵭ', 'ᶁ', 'ᶑ', 'д', 'δ', 'د', 'ض', 'ဍ', 'ဒ', 'დ', 'd'],
                        'e'    => ['é', 'è', 'ẻ', 'ẽ', 'ẹ', 'ê', 'ế', 'ề', 'ể', 'ễ', 'ệ', 'ë', 'ē', 'ę', 'ě', 'ĕ', 'ė', 'ε', 'έ', 'ἐ', 'ἑ', 'ἒ', 'ἓ', 'ἔ', 'ἕ', 'ὲ', 'έ', 'е', 'ё', 'э', 'є', 'ə', 'ဧ', 'ေ', 'ဲ', 'ე', 'ए', 'إ', 'ئ', 'e'],
                        'f'    => ['ф', 'φ', 'ف', 'ƒ', 'ფ', 'f'],
                        'g'    => ['ĝ', 'ğ', 'ġ', 'ģ', 'г', 'ґ', 'γ', 'ဂ', 'გ', 'گ', 'g'],
                        'h'    => ['ĥ', 'ħ', 'η', 'ή', 'ح', 'ه', 'ဟ', 'ှ', 'ჰ', 'h'],
                        'i'    => ['í', 'ì', 'ỉ', 'ĩ', 'ị', 'î', 'ï', 'ī', 'ĭ', 'į', 'ı', 'ι', 'ί', 'ϊ', 'ΐ', 'ἰ', 'ἱ', 'ἲ', 'ἳ', 'ἴ', 'ἵ', 'ἶ', 'ἷ', 'ὶ', 'ί', 'ῐ', 'ῑ', 'ῒ', 'ΐ', 'ῖ', 'ῗ', 'і', 'ї', 'и', 'ဣ', 'ိ', 'ီ', 'ည်', 'ǐ', 'ი', 'इ', 'ی', 'i'],
                        'j'    => ['ĵ', 'ј', 'Ј', 'ჯ', 'ج', 'j'],
                        'k'    => ['ķ', 'ĸ', 'к', 'κ', 'Ķ', 'ق', 'ك', 'က', 'კ', 'ქ', 'ک', 'k'],
                        'l'    => ['ł', 'ľ', 'ĺ', 'ļ', 'ŀ', 'л', 'λ', 'ل', 'လ', 'ლ', 'l'],
                        'm'    => ['м', 'μ', 'م', 'မ', 'მ', 'm'],
                        'n'    => ['ñ', 'ń', 'ň', 'ņ', 'ʼn', 'ŋ', 'ν', 'н', 'ن', 'န', 'ნ', 'n'],
                        'o'    => ['ó', 'ò', 'ỏ', 'õ', 'ọ', 'ô', 'ố', 'ồ', 'ổ', 'ỗ', 'ộ', 'ơ', 'ớ', 'ờ', 'ở', 'ỡ', 'ợ', 'ø', 'ō', 'ő', 'ŏ', 'ο', 'ὀ', 'ὁ', 'ὂ', 'ὃ', 'ὄ', 'ὅ', 'ὸ', 'ό', 'о', 'و', 'θ', 'ို', 'ǒ', 'ǿ', 'º', 'ო', 'ओ', 'o', 'ö'],
                        'p'    => ['п', 'π', 'ပ', 'პ', 'پ', 'p'],
                        'q'    => ['ყ', 'q'],
                        'r'    => ['ŕ', 'ř', 'ŗ', 'р', 'ρ', 'ر', 'რ', 'r'],
                        's'    => ['ś', 'š', 'ş', 'с', 'σ', 'ș', 'ς', 'س', 'ص', 'စ', 'ſ', 'ს', 's'],
                        't'    => ['ť', 'ţ', 'т', 'τ', 'ț', 'ت', 'ط', 'ဋ', 'တ', 'ŧ', 'თ', 'ტ', 't'],
                        'u'    => ['ú', 'ù', 'ủ', 'ũ', 'ụ', 'ư', 'ứ', 'ừ', 'ử', 'ữ', 'ự', 'û', 'ū', 'ů', 'ű', 'ŭ', 'ų', 'µ', 'у', 'ဉ', 'ု', 'ူ', 'ǔ', 'ǖ', 'ǘ', 'ǚ', 'ǜ', 'უ', 'उ', 'u', 'ў', 'ü'],
                        'v'    => ['в', 'ვ', 'ϐ', 'v'],
                        'w'    => ['ŵ', 'ω', 'ώ', 'ဝ', 'ွ', 'w'],
                        'x'    => ['χ', 'ξ', 'x'],
                        'y'    => ['ý', 'ỳ', 'ỷ', 'ỹ', 'ỵ', 'ÿ', 'ŷ', 'й', 'ы', 'υ', 'ϋ', 'ύ', 'ΰ', 'ي', 'ယ', 'y'],
                        'z'    => ['ź', 'ž', 'ż', 'з', 'ζ', 'ز', 'ဇ', 'ზ', 'z'],
                        'aa'   => ['ع', 'आ', 'آ'],
                        'ae'   => ['æ', 'ǽ'],
                        'ai'   => ['ऐ'],
                        'ch'   => ['ч', 'ჩ', 'ჭ', 'چ'],
                        'dj'   => ['ђ', 'đ'],
                        'dz'   => ['џ', 'ძ'],
                        'ei'   => ['ऍ'],
                        'gh'   => ['غ', 'ღ'],
                        'ii'   => ['ई'],
                        'ij'   => ['ij'],
                        'kh'   => ['х', 'خ', 'ხ'],
                        'lj'   => ['љ'],
                        'nj'   => ['њ'],
                        'oe'   => ['ö', 'œ', 'ؤ'],
                        'oi'   => ['ऑ'],
                        'oii'  => ['ऒ'],
                        'ps'   => ['ψ'],
                        'sh'   => ['ш', 'შ', 'ش'],
                        'shch' => ['щ'],
                        'ss'   => ['ß'],
                        'sx'   => ['ŝ'],
                        'th'   => ['þ', 'ϑ', 'ث', 'ذ', 'ظ'],
                        'ts'   => ['ц', 'ც', 'წ'],
                        'ue'   => ['ü'],
                        'uu'   => ['ऊ'],
                        'ya'   => ['я'],
                        'yu'   => ['ю'],
                        'zh'   => ['ж', 'ჟ', 'ژ'],
                        '(c)'  => ['©'],
                        'A'    => ['Á', 'À', 'Ả', 'Ã', 'Ạ', 'Ă', 'Ắ', 'Ằ', 'Ẳ', 'Ẵ', 'Ặ', 'Â', 'Ấ', 'Ầ', 'Ẩ', 'Ẫ', 'Ậ', 'Å', 'Ā', 'Ą', 'Α', 'Ά', 'Ἀ', 'Ἁ', 'Ἂ', 'Ἃ', 'Ἄ', 'Ἅ', 'Ἆ', 'Ἇ', 'ᾈ', 'ᾉ', 'ᾊ', 'ᾋ', 'ᾌ', 'ᾍ', 'ᾎ', 'ᾏ', 'Ᾰ', 'Ᾱ', 'Ὰ', 'Ά', 'ᾼ', 'А', 'Ǻ', 'Ǎ', 'A', 'Ä'],
                        'B'    => ['Б', 'Β', 'ब', 'B'],
                        'C'    => ['Ç', 'Ć', 'Č', 'Ĉ', 'Ċ', 'C'],
                        'D'    => ['Ď', 'Ð', 'Đ', 'Ɖ', 'Ɗ', 'Ƌ', 'ᴅ', 'ᴆ', 'Д', 'Δ', 'D'],
                        'E'    => ['É', 'È', 'Ẻ', 'Ẽ', 'Ẹ', 'Ê', 'Ế', 'Ề', 'Ể', 'Ễ', 'Ệ', 'Ë', 'Ē', 'Ę', 'Ě', 'Ĕ', 'Ė', 'Ε', 'Έ', 'Ἐ', 'Ἑ', 'Ἒ', 'Ἓ', 'Ἔ', 'Ἕ', 'Έ', 'Ὲ', 'Е', 'Ё', 'Э', 'Є', 'Ə', 'E'],
                        'F'    => ['Ф', 'Φ', 'F'],
                        'G'    => ['Ğ', 'Ġ', 'Ģ', 'Г', 'Ґ', 'Γ', 'G'],
                        'H'    => ['Η', 'Ή', 'Ħ', 'H'],
                        'I'    => ['Í', 'Ì', 'Ỉ', 'Ĩ', 'Ị', 'Î', 'Ï', 'Ī', 'Ĭ', 'Į', 'İ', 'Ι', 'Ί', 'Ϊ', 'Ἰ', 'Ἱ', 'Ἳ', 'Ἴ', 'Ἵ', 'Ἶ', 'Ἷ', 'Ῐ', 'Ῑ', 'Ὶ', 'Ί', 'И', 'І', 'Ї', 'Ǐ', 'ϒ', 'I'],
                        'J'    => ['J'],
                        'K'    => ['К', 'Κ', 'K'],
                        'L'    => ['Ĺ', 'Ł', 'Л', 'Λ', 'Ļ', 'Ľ', 'Ŀ', 'ल', 'L'],
                        'M'    => ['М', 'Μ', 'M'],
                        'N'    => ['Ń', 'Ñ', 'Ň', 'Ņ', 'Ŋ', 'Н', 'Ν', 'N'],
                        'O'    => ['Ó', 'Ò', 'Ỏ', 'Õ', 'Ọ', 'Ô', 'Ố', 'Ồ', 'Ổ', 'Ỗ', 'Ộ', 'Ơ', 'Ớ', 'Ờ', 'Ở', 'Ỡ', 'Ợ', 'Ø', 'Ō', 'Ő', 'Ŏ', 'Ο', 'Ό', 'Ὀ', 'Ὁ', 'Ὂ', 'Ὃ', 'Ὄ', 'Ὅ', 'Ὸ', 'Ό', 'О', 'Θ', 'Ө', 'Ǒ', 'Ǿ', 'O', 'Ö'],
                        'P'    => ['П', 'Π', 'P'],
                        'Q'    => ['Q'],
                        'R'    => ['Ř', 'Ŕ', 'Р', 'Ρ', 'Ŗ', 'R'],
                        'S'    => ['Ş', 'Ŝ', 'Ș', 'Š', 'Ś', 'С', 'Σ', 'S'],
                        'T'    => ['Ť', 'Ţ', 'Ŧ', 'Ț', 'Т', 'Τ', 'T'],
                        'U'    => ['Ú', 'Ù', 'Ủ', 'Ũ', 'Ụ', 'Ư', 'Ứ', 'Ừ', 'Ử', 'Ữ', 'Ự', 'Û', 'Ū', 'Ů', 'Ű', 'Ŭ', 'Ų', 'У', 'Ǔ', 'Ǖ', 'Ǘ', 'Ǚ', 'Ǜ', 'U', 'Ў', 'Ü'],
                        'V'    => ['В', 'V'],
                        'W'    => ['Ω', 'Ώ', 'Ŵ', 'W'],
                        'X'    => ['Χ', 'Ξ', 'X'],
                        'Y'    => ['Ý', 'Ỳ', 'Ỷ', 'Ỹ', 'Ỵ', 'Ÿ', 'Ῠ', 'Ῡ', 'Ὺ', 'Ύ', 'Ы', 'Й', 'Υ', 'Ϋ', 'Ŷ', 'Y'],
                        'Z'    => ['Ź', 'Ž', 'Ż', 'З', 'Ζ', 'Z'],
                        'AE'   => ['Æ', 'Ǽ'],
                        'Ch'   => ['Ч'],
                        'Dj'   => ['Ђ'],
                        'Dz'   => ['Џ'],
                        'Gx'   => ['Ĝ'],
                        'Hx'   => ['Ĥ'],
                        'Ij'   => ['IJ'],
                        'Jx'   => ['Ĵ'],
                        'Kh'   => ['Х'],
                        'Lj'   => ['Љ'],
                        'Nj'   => ['Њ'],
                        'Oe'   => ['Œ'],
                        'Ps'   => ['Ψ'],
                        'Sh'   => ['Ш'],
                        'Shch' => ['Щ'],
                        'Ss'   => ['ẞ'],
                        'Th'   => ['Þ'],
                        'Ts'   => ['Ц'],
                        'Ya'   => ['Я'],
                        'Yu'   => ['Ю'],
                        'Zh'   => ['Ж'],
                        ' '    => ["\xC2\xA0", "\xE2\x80\x80", "\xE2\x80\x81", "\xE2\x80\x82", "\xE2\x80\x83", "\xE2\x80\x84", "\xE2\x80\x85", "\xE2\x80\x86", "\xE2\x80\x87", "\xE2\x80\x88", "\xE2\x80\x89", "\xE2\x80\x8A", "\xE2\x80\xAF", "\xE2\x81\x9F", "\xE3\x80\x80", "\xEF\xBE\xA0"],
                ];
        }

        /**
         * Returns the language specific replacements for the ascii method.
         *
         * Note: Adapted from Stringy\Stringy.
         *
         * @see https://github.com/danielstjules/Stringy/blob/3.1.0/LICENSE.txt
         *
         * @param  string  $language
         * @return array|null
         */
        protected static function languageSpecificCharsArray($language)
        {
                static $languageSpecific;

                if (! isset($languageSpecific)) {
                        $languageSpecific = [
                                'bg' => [
                                        ['х', 'Х', 'щ', 'Щ', 'ъ', 'Ъ', 'ь', 'Ь'],
                                        ['h', 'H', 'sht', 'SHT', 'a', 'А', 'y', 'Y'],
                                ],
                                'de' => [
                                        ['ä',  'ö',  'ü',  'Ä',  'Ö',  'Ü'],
                                        ['ae', 'oe', 'ue', 'AE', 'OE', 'UE'],
                                ],
                        ];
                }

                return $languageSpecific[$language] ?? null;
        }
}

英文链接地址:https://laravel.com/api/5.0/Illuminate/Sup...

本作品采用《CC 协议》,转载必须注明作者和本文链接
不要轻易放弃。学习成长的路上,我们长路漫漫,只因学无止境 Don't give up easily. On the way of learning and growing up, we have a long way to go, just because there is no end to learning.
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

不用laravel的话也可以把这些函数单拿出来,赞

6年前 评论

6666 谢谢楼主的分享

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!