| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | <?phpdeclare(strict_types=1);namespace app\utils;/** * 字符串工具类 */class StringUtils{    public function startsWith(string $string, string $subString): bool    {        return substr($string, 0, strlen($subString)) === $subString;        // 或者 strpos($s2, $s1) === 0    }    public function endsWith(string $string, string $subString): bool    {        return substr($string, strpos($string, $subString)) === $subString;    }    /**     * 下划线转驼峰(首字母大写)     * 思路:     * step1.原字符串转小写,原字符串中的分隔符用空格替换,在字符串开头加上分隔符     * step2.将字符串中每个单词的首字母转换为大写,再去空格,去字符串首部附加的分隔符.     * @param string $string      * @param string $separator     * @return string      */    public function camelizeFirstOn(string $string, $separator = '_')    {        $uncamelized_words = str_replace($separator, " ", strtolower($string));        return str_replace(" ", "", ucwords($uncamelized_words));    }    /**     * 下划线转驼峰(首字母小写)     * 思路:     * step1.原字符串转小写,原字符串中的分隔符用空格替换,在字符串开头加上分隔符     * step2.将字符串中每个单词的首字母转换为大写,再去空格,去字符串首部附加的分隔符.     * @param string $string      * @param string $separator     * @return string      */    public function camelize(string $string, $separator = '_')    {        $uncamelized_words = $separator . str_replace($separator, " ", strtolower($string));        return ltrim(str_replace(" ", "", ucwords($uncamelized_words)), $separator);    }    /**     * 驼峰命名转下划线命名     * 思路:     * 小写和大写紧挨一起的地方,加上分隔符,然后全部转小写     */    public function uncamelize($camelCaps, $separator = '_')    {        return strtolower(preg_replace('/([a-z])([A-Z])/', "$1" . $separator . "$2", $camelCaps));    }    /**     * 生成随机字符串     */    public function generateStochastic($length = 16)    {        $permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyz';        return substr(str_shuffle($permitted_chars), 0, $length);    }}
 |