Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

LuStringUtils.php 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: robin
  5. * Date: 1/10/16
  6. * Time: 11:28 PM
  7. */
  8. namespace Luticate\Utils\Business;
  9. use Carbon\Carbon;
  10. class LuStringUtils
  11. {
  12. public static function stringSnakeToCamelCase($string, $capitalizeFirstCharacter) {
  13. $str = preg_replace_callback("/_[a-zA-Z]/", function($matches)
  14. {
  15. return strtoupper($matches[0][1]);
  16. }, $string);
  17. if ($capitalizeFirstCharacter)
  18. $str[0] = strtoupper($str[0]);
  19. return $str;
  20. }
  21. public static function arraySnakeToCamelCase($array)
  22. {
  23. if (!is_array($array))
  24. {
  25. return $array;
  26. }
  27. $camelCase = [];
  28. foreach ($array as $key => $value)
  29. {
  30. $camelCase[self::stringSnakeToCamelCase($key, true)] = self::arraySnakeToCamelCase($value);
  31. }
  32. return $camelCase;
  33. }
  34. public static function convertJsonString($json)
  35. {
  36. $array = json_decode($json, true);
  37. return self::arraySnakeToCamelCase($array);
  38. }
  39. public static function parseDate($str)
  40. {
  41. try {
  42. return Carbon::parse($str);
  43. } catch (\Exception $e) {
  44. return null;
  45. }
  46. }
  47. public static function endsWith($haystack, $needle) {
  48. return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0
  49. && strpos($haystack, $needle, $temp) !== false);
  50. }
  51. public static function startsWith($haystack, $needle) {
  52. return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== false;
  53. }
  54. }