Helpers.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. if (!function_exists('route_class')) {
  3. /**
  4. * 根据当前路由 生成 class
  5. * @return mixed
  6. */
  7. function route_class()
  8. {
  9. return str_replace('.', '-', Route::currentRouteName());
  10. }
  11. }
  12. if (!function_exists('assert_images')) {
  13. /**
  14. * 七牛 images 镜像空间
  15. * @param $path
  16. * @param null $test
  17. * @return mixed
  18. */
  19. function assert_images($path, $test = null)
  20. {
  21. if (substr($path, 0, 1) != '/') {
  22. $path = '/' . $path;
  23. }
  24. if ($test) {
  25. return 'https://images.learnku.net' . $path;
  26. }
  27. return config('app.images_url') . $path;
  28. }
  29. }
  30. if (!function_exists('assert_cdns')) {
  31. /**
  32. * 七牛 cdns 镜像空间
  33. * @param $path
  34. * @param null $secure
  35. * @return mixed
  36. */
  37. function assert_cdns($path, $secure = null)
  38. {
  39. if (substr($path, 0, 1) != '/') {
  40. $path = '/' . $path;
  41. }
  42. return config('app.cdns_url') . $path;
  43. }
  44. }
  45. if (!function_exists('default_img')) {
  46. function default_img($img = null)
  47. {
  48. if (empty($img)) {
  49. return "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQMAAAEDBAMAAADD/3z4AAAAMFBMVEW8vsDR09TFxsi/wcPn6OnX2NrMztDc3d7Hycve4OHKy83Bw8XP0NIAAAAAAAAAAAC0F+PNAAAACXBIWXMAAAsTAAALEwEAmpwYAAACt0lEQVR4Ae3av27TbBTHcdfBSUs6uCISQmXokJHBEl0qFgi/xHHaoYMH2BgqsUZQqWuHSqxIzdINpFwAQy8gErkwYruH10nsWg2vzxn6+wwk6YC+OrYf58/jEBERERERERERERERUaVXz18e2BZ8AxBeWhZsIfHOMqGD1KldwVNkRnYJT3DHLmEqCZ+sTwXLk+FcEsb2CW+ZYHog5pLgmyXcSsIv01tEou+YaUyQeu/Y6SJl9Y7hTTKG9Jr4mjwLDBJukn+2Y+BD8qR1rV/gLV+J81A/IcYg92rb4FblLd+iuwZXZgzgxBFNgzu2h4UokJc7BgtUvLwiNSbqY/BWV6RDGYPuEHq5P7hInNoNQZbqvskQhKv7vmFXhrA2hoFWwpkMIc/V/EDRlCHYjWEqQygaww/nESAi92JzX/6fhG1sbsgEJjCBCUx4DAnRxYPUkfDA/00tgQlMYEL7BaJ924QOFp5ZJnhIRIFhQgep73YJctM6sUto4Y5dwqEkXJolXEmCb5ZwZp8wLUxoBeYHojO2OB0Plr5zHBlelNIV6CW4yAxWdpSM9Rfo8crmopH6bSoMlo7DQqCVICuDv7abw1dMaHyehL/XfyIZKiRUbSEIDBMmslaZJWwhMzRIeL2yZAfqCY2bIH2A8NUTWrjOHsRQPSHO3kZP8VegnLALJGNo4z++YoIskmF2HMRQN0F+q5/nEiLNBFkS+y7yfM0EuRQ/Iq+nmXCEIpFmwjkK+XoJHor19BI6KBapJTRRxtdKuEKZnlKCi1KRUsItyvkqCY0Jyh2rJOzgHqFKQoz7zBQStnCvY61PU+XC+hOaqDCrPaGLCscK3y9UCOtOOEKlWc0JP/cq1ZbAX2WYwAQm2O9f4EYSJjCBCUxgQrX23ub2HSIiIiIiIiIiIiIiIiIiIiIiIiKif/MHRAD9DcnwUkAAAAAASUVORK5CYII=";
  50. } else {
  51. return assert_images($img);
  52. }
  53. }
  54. }
  55. if (!function_exists('make_excerpt')) {
  56. function make_excerpt($value, $length = 200)
  57. {
  58. $excerpt = trim(preg_replace('/\r\n|\r|\n+/', ' ', strip_tags($value)));
  59. return str_limit($excerpt, $length);
  60. }
  61. }
  62. if (!function_exists('markdownToHtml')) {
  63. /**
  64. * markdown 转 html
  65. * @param string $markdown markdown文本
  66. * @param string $rule markdownNoH1_6 markdown 规则
  67. * @param null $limit 限制大小
  68. * @return mixed
  69. */
  70. function markdownToHtml($markdown, $rule = 'markdownNoH1_6', $limit = null)
  71. {
  72. // 截取大小
  73. if ($limit) {
  74. if (is_numeric($limit)) {
  75. $markdown = substr($markdown, 0, $limit);
  76. } else {
  77. $markdown = substr($markdown, 0, strlen($markdown) / 3);
  78. }
  79. }
  80. // markdown to html
  81. $convertedHmtl = app('Parsedown')->setBreaksEnabled(true)->text($markdown);
  82. /** XSS 防注入 */
  83. $convertedHmtl = clean($convertedHmtl, $rule);
  84. // 代码高亮展示优化
  85. $convertedHmtl = str_replace("<pre><code>", '<pre><code class=" language-php">', $convertedHmtl);
  86. // 移除 {{}}
  87. // $convertedHmtl = remove_vue($convertedHmtl);
  88. // 返回 html
  89. return $convertedHmtl;
  90. }
  91. }