martes, 19 de julio de 2016

FUNCIONES PREDEFINIDAS

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ónPropó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ónPropó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

0 comentarios:

Publicar un comentario