Guest User

Untitled

a guest
Apr 26th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.17 KB | None | 0 0
  1. public function generateUri($title) {
  2. $title = strtolower($title);
  3.  
  4. // Reemplazamos tildes y etc.
  5. $patterns = array (
  6. '/á/',
  7. '/é/',
  8. '/í/',
  9. '/ó/',
  10. '/ú/',
  11. '/à/',
  12. '/è/',
  13. '/ù/',
  14. '/ì/',
  15. '/ò/',
  16. '/ñ/',
  17. '/Á/',
  18. '/Í/',
  19. '/É/',
  20. '/Ó/',
  21. '/Ú/',
  22. '/À/',
  23. '/È/',
  24. '/Ù/',
  25. '/Ì/',
  26. '/Ò/'
  27. );
  28.  
  29. $replaces = array (
  30. 'a',
  31. 'e',
  32. 'i',
  33. 'o',
  34. 'u',
  35. 'a',
  36. 'e',
  37. 'u',
  38. 'i',
  39. 'o',
  40. 'n',
  41. 'a',
  42. 'i',
  43. 'e',
  44. 'o',
  45. 'u',
  46. 'a',
  47. 'e',
  48. 'o',
  49. 'u',
  50. 'a',
  51. 'e',
  52. 'u',
  53. 'i',
  54. 'o'
  55. );
  56.  
  57.  
  58. $title = preg_replace($patterns, $replaces, $title);
  59.  
  60. // Vamos a separar las words.
  61.  
  62.  
  63. $words = explode(' ', $title);
  64.  
  65. $strlen = 0;
  66.  
  67. // Recorremos y vemos que no pase el limite.
  68.  
  69. $ret = '';
  70.  
  71. foreach ($words as $w) {
  72. if ( ($strlen + strlen($w) ) > LIMIT ) {
  73. // Supera al limite, chequeamos que no
  74. // NOSSA, NOSSA
  75. // que no sea la unica palabra, asi no devolvemos una uri vacia.
  76. if (!$ret) {
  77. // Tonces efectivamente es la unica palabra, la cortamos.
  78. $ret = substr($w, 0, LIMIT);
  79. }
  80. // Salimos del for
  81. break;
  82. }else{
  83. $ret .= $w . '-';
  84. }
  85. }
  86.  
  87.  
  88. $valid = array (
  89. 'a',
  90. 'b',
  91. 'c',
  92. 'd',
  93. 'e',
  94. 'f',
  95. 'g',
  96. 'h',
  97. 'i',
  98. 'j',
  99. 'k',
  100. 'l',
  101. 'm',
  102. 'n',
  103. 'o',
  104. 'p',
  105. 'q',
  106. 'r',
  107. 's',
  108. 't',
  109. 'u',
  110. 'v',
  111. 'w',
  112. 'x',
  113. 'y',
  114. 'z',
  115. '-',
  116. '_'
  117. );
  118.  
  119. $return = '';
  120.  
  121. for ($i=0;$i<strlen($ret);$i++) {
  122.  
  123. if ( in_array ($ret[$i], $valid) ) {
  124.  
  125. $return .= $ret[$i];
  126.  
  127. }
  128.  
  129. }
  130.  
  131.  
  132.  
  133. $return = preg_replace ('/(-)+/', '-', $return);
  134.  
  135. $return = preg_replace ('/(-)+$/', '', $return);
  136.  
  137. $return = preg_replace ('/^(-)/', '', $return);
  138.  
  139.  
  140. if(!$return) {
  141. $return = 'mas-frases-en-gusta-us';
  142. }
  143.  
  144.  
  145.  
  146. return $return;
  147.  
  148.  
  149. }
Add Comment
Please, Sign In to add comment