Funciones de cadenas II
En esta
pagina seguiremos viendo las funciones predefinidas para cadenas de texto, y en
concreto aquellas que modifican el texto, dando como resultado otra cadena.
Cambiar Mayúsculas y minúsculas:
strtoupper($texto);
Devuelve
la cadena de texto pasada en el argumento $texto con
todas sus letras en mayúsculas.
strtolower($texto);
Devuelve
la cadena de texto pasada en el argumento $texto con
todas sus letras en minúsculas.
ucwords($texto);
Devuelve
la cadena de texto pasada en el argumento $texto con la
primera letra de cada palabra pasada a mayúsculas, siempre que ésta sea un
carácter alfabético.
ucfirst($texto);
Devuelve
la cadena de texto pasada en el argumento $texto con la
primera letra de la cadena en mayúsculas, siempre que ésta sea un carácter
alfabético.
En el
siguiente enlace se muestra una página de ejemplo en la que se usan las
funciones anteriores:
El código
aplicado para crear la página anterior puedes verlo en el siguiente enlace:
Eliminar y remplazar texto.
str_replace($buscar,$remplazar,$texto);
Esta
función es particularmente útil para remplazar una palabra o trozo de texto por
otro, ya que dentro del texto indicado en el tercer argumento $texto, busca los trozos que coinciden con la cadena
indicada en el primer argumento, $buscar, y los
sustituye por la cadena indicada en el segundo argumento $remplazar.
Si en el
segundo argumento $remplazar indicamos una cadena vacia "", lo que hará la función es eliminar del $texto los trozos coincidentes con $buscar.
str_ireplace($buscar,$remplazar,$texto);
Esta
función es igual que la anterior, pero no tiene en cuenta las diferencias entre
letras mayúsculas y minúsculas.
substr($texto,comienzo,longitud);
Devuelve
una parte de la cadena pasada en el primer argumento $texto. El segundo argumento es un número que indica en
que carácter empieza la cadena devuelta, y el tercero indica su longitud.
El tercer
argumento longitud es opcional, y si no se indica,
la cadena devuelta llegará hasta el final de la cadena original.
Los
caracteres de la cadena empiezan a contarse desde el número 0, al igual que en
los arrays, de forma que el primer carácter tiene el número 0, el segundo el 1,
y asi sucesivamente. Esto hay que tenerlo en cuenta al poner el segundo argumento
comienzo.
Si en comienzo ponemos un número mayor que la longitud de la
cadena, la función devolverá "false".
Si en comienzo ponemos un número negativo, los caracteres
empezarán a contarse desde el final de la cadena, de forma que si ponemos por ejemplo
-20, la cadena devuelta serán los 20 últimos caracteres de la cadena original ($texto).
substr_replace($texto,$sustituir,comienzo,longitud);
Devuelve
la cadena pasada en el primer argumento $texto, en la
cual se sustituye un texto por otro. El texto nuevo se indica en el segundo
argumento $sustituir El tercer argumento indica el
comienzo del texto sustituido (viejo) y el cuarto su longitud, ambos argumentos
deben ser números que indican la posición del carácter (tercero) y la cantidad
de caracteres a sustituir.
Al igual
que en la función anterior, si no se indica el argumento longitud, se entiende que ésta es hasta el final de la
cadena; los caracteres se empiezan a contar desde el 0; y si ponemos en comienzo un número negativo, empezaremos a contar desde el
final de la cadena.
str_pad($texto,largo,$relleno,tipo_relleno);
Alarga la
cadena de texto $texto hasta la longitud indicada en largo, para ello se utiliza la cadena indicada en $relleno.
Es decir,
si queremos que una cadena ocupe más espacio del que tiene, alargándola, por,
ejemplo, mediante puntos o guiones, en el argumento $relleno escribiremos ese carácter, con lo cual se alargará
la cadena hasta la longitud indicada.
El cuarto
argumento tipo_relleno es opcional, indica en que lado
de la cadena queremos que aparezcan los caracteres de relleno, podemos poner
tres valores: STR_PAD_RIGHT los caracteres de relleno
aparecerán por la derecha, es la opción por defecto; STR_PAD_LEFT, el relleno aparece a la izquierda; y STR_PAD_BOTH, el relleno aparece repartido a ambos lados de la
cadena.
ltrim($texto,"lista_caracteres");
Modifica
el texto pasado en el primer argumento, $texto: elimina
los primeros caracteres del $texto, si
éstos están en la lista del segundo argumento, "lista_caracteres".
rtrim($texto,"lista_caracteres");
Modifica
el texto pasado en el primer argumento, $texto: elimina
los últimos caracteres del $texto, si
éstos están en la lista del segundo argumento, "lista_caracteres".
trim($texto,"lista_caracteres");
Modifica
el texto pasado en el primer argumento, $texto: elimina
tanto los primeros caracteres como los últimos del $texto, si éstos están en la lista del segundo argumento,
"lista_caracteres".
strtr($texto,"lista_1","lista_2");
Modifica
el texto pasado en $texto, de manera que sustituye los
caracteres de "lista1" por los de "lista2". El primer caracter indicado en "lista1" es sustituido por el primero de "lista2", el segundo de "lista1" es
sustituido por el segundo de "lista2", y así
sucesivamente. Si alguna de las listas es más larga que la otra, los caracteres
sobrantes se ignoran.
En la
siguiente página de ejemplo, mediante varios formularios, el usuario puede
modificar un texto escrito por él mismo, utilizando algunas de las funciones
anteriores.
Puedes
ver el código de esta página en el siguiente enlace, el código tiene
comentarios para ver cómo está construida la página:
Las funciones de cadena trabajan con campos char y varchar por lo que los literales que escribamos se deben encerrar entre comillas simples.
Estas funciones que vamos a explicar a continuación pueden manipular cadenas de letras u otros caracteres por lo que las vamos a dividir en dos grupos:
Funciones que devuelven caracteres
Este tipo de funciones devuelven un carácter o varios caracteres.
Función | Propósito |
CHR(n) | Nos devuelve el carácter cuyo valor en binario es n |
CONCAT(cad1, cad2) | Nos devuelve cad1 concatenada con cad2 |
UPPER(cad) | Convierte cad a mayúsculas |
LOWER(cad) | Convierte cad a minúsculas |
LPAD(cad1,n[,cad2]) | Con esta función añadimos caracteres a cad1 por la izquierda hasta una longitud máxima dada por n |
INITCAP(cad) | Convierte la primera letra de cad a mayúscula |
LTRIM(cad [,set]) | Elimina un conjunto de caracteres a la izquierda de cad, siendo set el conjunto de caracteres a eliminar |
RPAD(cad1, n[,cad2]) | Con esta función añadimos caracteres de la misma forma que con la función LPAD pero esta vez los añadimos a la derecha |
RTRIM(cad[,set]) | Hace lo mismo que LTRIM pero por la derecha |
REPLACE(cad,cadena_buscada [,cadena_sustitucion] ) | Sustituye un conjunto de caracteres de 0 o más caracteres, devuelve cad con cada ocurrencia de cadena_buscada sustituida por cadena_sustitucion |
SUBSTR(cad, m[,n]) | Devuelve la subcadena de cad que abarca desde m hasta el numero de caracteres dados por n. |
TRANSLATE(cad1,cad2,cad3) | Convierte caracteres de una cadena en caracteres diferentes. Devuelve cad1 con los caracteres encontrados en cad2 y sustituidos por los caracteres de cad3 |
Ponemos algunos ejemplos de utilización de estas funciones:
Sentencia sql que nos devuelve las letras cuyo valor asccii es el 45 y el 23
select CHR(45), CHR(23) FROM TABLA;
Sentencia sql que obtiene el nombre de los alumnos sacando por pantalla la siguiente frase: el nombre del alumno es (nombre que esta almacenado en la tabla)
select CONCAT ('el nombre de alumno es', nombre) from alumno;
Sentencia sql que me devuelve los nombres de los alumnos en mayúsculas
select UPPER(nombre) from alumno;
Sentencia sql que obtiene de un campo nombre, las 3 primeras letras
select SUBSTR(nombre,0,3) from alumno;
Y asi con el resto de funciones
Funciones que devuelven valores numéricos
Estas funciones nos devuelven números a modo de información.
Función | Propósito |
ASCII(cad) | Devuelve el valor ASCII de la primera letra de cad |
INSTR(cad1, cad2[,comienzo[,m]]) | Función que busca un conjunto de caracteres dentro de una cadena. Nos devuelve la posición de cad2 en cad1 empezando a buscar en comienzo |
LENGTH(cad) | Devuelve en número de caracteres de cad |
Como con las funciones anteriores dejamos unos ejemplos para que veáis su funcionamiento.
Sentencia sql que nos devuelve el valor ASCII de la letra ('s')
select ASCII('s') from tabla;
Sentencia que nos devuelve la posición de la ocurrencia 'pe' dentro de la cadena 'Los perros están bien' a partir de la posición 2
select INSTR('Los perros están bien','pe',2) from tabla;
Sentencia sql que nos devuelve el numero de caracteres de los nombres de los alumnos
select LENGTH(nombre) from alumnos;
Fuente de Información: http://www.desarrolloweb.com/articulos/funciones-cadena-sql.html
Fuente de Información: http://www.desarrolloweb.com/articulos/funciones-cadena-sql.html
0 comentarios:
Publicar un comentario