Tag: texto - Webeame Snippets


Añadir snippet

Tag: texto



Texto simple para URL

Cambia todo tipo de carácteres extraños por letras o símbolos equivalentes para poder usarlo como complemento en las URL's
  1. /**
  2. * function palabra_simple (string $texto, boolean $min, boolean $html = false)
  3. *
  4. * Cambia las letras con tildes, eñes o caracteres raros por su concordancia natural.
  5. * En caso de que min sea true devolvera el texto en minúsculas.
  6. *
  7. * @$min: true/false para devolver el resultado en minúsculas
  8. * @$html: true/false si la cadena de texto que recibe está formateada con htmlentities
  9. *
  10. * return string
  11. */
  12. function palabra_simple ($texto, $min = true, $html = false) {
  13. if (!$html) {
  14. $texto = htmlentities($texto, ENT_QUOTES, 'ISO-8859-1');
  15. }
  16.  
  17. $texto = preg_replace('/&([a-zA-Z])(uml|acute|grave|circ|tilde);/i', '$1', $texto);
  18. $texto = html_entity_decode($texto, ENT_QUOTES, 'ISO-8859-1');
  19.  
  20. $texto = preg_replace(array('/[^a-z0-9_-]/i', '/-+/', '/^-/', '/-$/',), array('-', '-', '', ''), $texto);
  21.  
  22. return $min?strtolower($texto):$texto;
  23. }

En PHP url texto simple por Lito hace on 4/2/08 | Comentarios



Cortar un texto en la longitud deseada

Corta un texto por el limite seleccionado y devuelve el resultado. Esta función es útil para crear el texto de entradillas ya que no incluye las etiquetas HTML como enlaces, strong y demás y para sistemas que usen entidades HTML para los acentos, comprueba que no corte ninguna de estas entidades.
  1. /**
  2. * function corta_texto (string $txt, integer $limite = 150, string $fin = '...', string $encontrar = ' ')
  3. *
  4. * Corta un texto por el limite seleccionado y devuelve el resultado.
  5. *
  6. * @$txt: Texto a cortar
  7. * @$limite: Límite máximo de caractere que se permiten al texto
  8. * @$fin: Cadena para finalizar el texto cortado
  9. * @$encontrar: Busca la última posición de esta cadena en dentro del límite de texto y lo corta en esa posición. Por defecto un espacio.
  10. *
  11. * return string
  12. */
  13. function corta_texto ($txt, $limite = 150, $fin = '...', $encontrar = ' ') {
  14. // Primero elimino todas las etiquetas de HTML
  15. $txt = preg_replace('/<[^>]+>/', '', $txt);
  16.  
  17. // Si la cadena es más corta que el límite
  18. if (strlen($txt) <= $limite) {
  19. // Quito los saltos de linea y los paso a HTML
  20. return preg_replace("/\n/s",'<br />', preg_replace("/(\r\n|\r)/s","\n", $txt));
  21. }
  22.  
  23. // Si no encuentra ninguna entidad HTML corta el texto y devuelve el resultado
  24. if (strstr($txt, '&') === false) {
  25. return substr($txt, 0, $limite).$fin;
  26. }
  27.  
  28. $caracteres = preg_split('/(&[^;\s]+;)|/', $txt, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE);
  29. $longitud = count($caracteres);
  30.  
  31. if ($longitud === 0) {
  32. return '';
  33. }
  34.  
  35. $inicio = max(0, -$longitud);
  36. $inicio_real = $caracteres[$longitud + $inicio][1];
  37.  
  38. if (($inicio + $limite) >= $longitud) {
  39. $txt = substr($txt, $inicio_real).$fin;
  40. } else {
  41. $remate = $caracteres[max($inicio, 0) + $limite][1] - $inicio_real;
  42.  
  43. while (($remate >= 0) && (!preg_match('/[ ,\.\;]/', $txt[$remate]))) {
  44. $remate--;
  45. }
  46.  
  47. $txt = substr($txt, $inicio_real, $remate).$fin;
  48. }
  49.  
  50. // Si no se define una cadena de texto a encontrar.
  51. if (empty($encontrar)) {
  52. return preg_replace("/\n/s",'<br />', preg_replace("/(\r\n|\r)/s","\n", $txt)).$fin;
  53. }
  54.  
  55. $pos = strrpos($txt, $encontrar);
  56.  
  57. if ($pos === false) {
  58. return preg_replace("/\n/s",'<br />', preg_replace("/(\r\n|\r)/s","\n", $txt)).$fin;
  59. } else {
  60. return preg_replace("/\n/s",'<br />', preg_replace("/(\r\n|\r)/s","\n", substr($txt, 0, $pos))).$fin;
  61. }
  62. }

En PHP cortar texto por Lito hace on 4/2/08 | Comentarios