12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- declare(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);
- }
- }
|