chr(n)
Devuelve el carácter cuyo
código ASCII es n.
ord(cadena)
Devuelve el código ASCII del primero de los caracteres de la cadena.
strlen(cadena)
Devuelve la longitud (número de caracteres) de la cadena. Los espacios son considerados como un caracter más.
strtolower(cadena)
Cambia todos los caracteres de la cadena a minúsculas.
strtoupper(cadena)
Convierte en mayúsculas todos los caracteres de la cadena.
ucwords(cadena)
Convierte a mayúsculas la primera letra de cada palabra.
ucfirst(cadena)
Convierte a mayúsculas la primera letra de la cadena y pone en minúsculas todas las demás.
ltrim(cadena)
Elimina todos los espacios que pudiera haber al principio de la cadena.
rtrim(cadena)
Elimina todos los espacios que existieran al final de la cadena.
trim(cadena)
Elimina los espacios tanto al principio como al final de la cadena
chop(cadena)
Elimina los espacios al final de la cadena. Es idéntica a rtrim.
Advertencia
Tanto trim, como ltrim y rtrim eliminan, además de los espacios, las secuencias: \n, \r, \t, \v y \0; llamadas también caracteres protegidos.
substr(cadena,n)
Si el valor de n es positivo extrae todos los caracteres de la cadena a partir del que ocupa la posición enésima a contar desde la izquierda.
Si el valor de n es negativo serán extraídos los n últimos caracteres contenidos en la cadena.
substr(cadena,n,m)
Si n y m son positivos extrae m caracteres a partir del que ocupa la posición enésima, de izquierda a derecha.
Si n es negativo y m es positivo extrae m (contados de izquierda a derecha) a partir del que ocupa la posición enésima contada de derecha a izquierda.
Si n es positivo y m es negativo extrae la cadena comprendida entre el enésimo carácter (contados de izquierda a derecha) hasta el emésimo, contando en este caso de derecha a izquierda
Si n es negativo y m también es negativo extrae la porción de cadena comprendida entre el emésimo y el enésimo caracteres contando, en ambos casos, de derecha a izquierda. Si el valor absoluto de n es menor que el de m devuelve una cadena vacía.
str_replace( cadena_buscada, cadena_que_la_reemplazará, cadena_completa)
Sustitiye todas las apariciones de la aguja en el pajar por la cadena
string str_replace ( string aguja, string cad, string pajar)
Esta función sustituye todas las apariciones de la aguja en el pajar por la cad dada_ Si no precisa reglas especiales de sustitución, deberá usar siempre esta función en lugar de ereg_replace()_
Esta función tiene seguridad binaria_
strrev(cadena)
Devuelve la cadena invertida
str_repeat(cadena, n)
Devuelve la cadena repetida tantas veces como indica n.
str_pad(cad, n, rell, tipo)
Añade a la cadena cad los caracteres especificados en rell (uno o varios, escritos entre comillas) hasta que alcance la longitud que indica n (un número)
El parámetro tipo puede tomar uno de estos tres valores (sin comillas):
STR_PAD_BOTH (rellena por ambos lados)
STR_PAD_RIGHT (rellena por la derecha)
STR_PAD_LEFT (rellena por la izquierda).
Si se omite la cadena de Relleno utilizará espacios y si se omite el tipo rellenará por la derecha
AddSlashes(cadena)
Inserta el carácter \ delante los siguientes: ", ', \ y NUL (el bit nulo).
stripslashes(cadena)
Quita las marcas añadidas a una cadena con la función AddSlashes().
chunk_split(cad, n, sep )
Devuelve la cadena (cad) después de haberle insertado, cada n caracteres, la cadena indicada en el parámetro sep.
Si no se indica sep PHP pondrá un espacio.
Si no se establece el parámetro n insertará el separador cada 76 caracteres.
Esta función coloca siempre un separador al final de la cadena.
parse_str(cadena)
Devuelve las variables –con su valor– indicadas dentro de la cadena (observa la sintaxis del ejemplo).
Dentro de la cadena cada variable se denomina con un nombre que va seguido de un signo igual. Los espacios se señalan con el signo + y los separadores de variables son signos &
explode(sep, cad,n)
Devuelve un array cuyos elementos contienen cada una de las porciones de la cadena (cad) comprendidas entre dos de los caracteres señalados como (sep) hasta el máximo de porciones señaladas (n).
Los caracteres separadores no son incluídos en las cadenas resultantes. Si no se indica la cantidad de porciones, será fraccionada toda la cadena.
Si se indica número, el último trozo contendrá toda la cadena restante.
implode(sep, array)
Devuelve una cadena formada por todos los elementos del array separados mediante los caracteres indicados en sep.
join(sep, array)
Es idéntica a implode.
strtok(cad , sep)
Esta función divide la cadena cad en trozos delimitados por el separador que se indica en sep.
Cuando se invoca la primera vez –extrae el primer trozo– debe llevar las sintaxis strtok(cadena,sep).
Al invocarla sucesivamente, se escribe solo strtok (" ") e irá recogiendo de forma secuencial los trozos sucesivos.
Encriptación de cadenas
PHP dispone de funciones que permiten codificar o encriptar cadenas de caracteres.bin2hex(cadena)
Devuelve una cadena ASCII que contiene la representación hexadecimal de la cadena. La conversión se realiza byte a byte, con los 4 bits superiores primero.
crypt(cadena)
Devuelve la cadena encriptada utilizando una semilla aleatoria de dos caracteres.
Por su caracter aleatorio, si se ejecuta dos veces seguidas –tal como puedes observar en el ejemplo– dará dos resultados diferentes.
crypt(cadena,"xx")
Devuelve la cadena encriptada utilizando como semilla los dos caracteres (entre comillas) que se escriben como segundo parámetro de la función.
Tanto en este supuesto como en el anterior, los dos primeros caracteres de la cadena encrip- tada coinciden con los que han sido utilizados como semilla.
md5(cadena,"xx")
Aplica el algoritmo md5 y devuelve la huella digital generada por él.
Este algoritmo presenta como peculiaridades que –tenga la dimensión que tenga la cadena a la que se aplique– genera siempre una huella digital que no es otra cosa que una cadena formada por 32 caracteres y que no dispone de ningún mecanismo inverso.
Seguramente habrás vivido esta experiencia. En muchos espacios de Internet –grupos de noticias, cuentas de correo web, etcétera– que requieren un login y una contraseña cuando utilizas la opción de recuperar contraseñas no te envían tu contraseña anterior, sino que te generan y envían una nueva.
Esto ocurre porque, por razones evidentes de seguridad, las contraseñas se almacenan usando estas huellas digitales y resulta imposible recuperar los valores originales.
La única solución en estos casos es crear una nueva contraseña (suelen hacerlo con las funciones de números aleatorios), enviarla de forma automática por correo electrónico y sustituir el valor anterior del registro de usuarios por el resultado de la codificación md5 de la nueva contraseña
crc32(cadena)
Aplica el algoritmo crc32 de comprobación de integridad y devuelve el valor del mismo.
Se utiliza muchísimo en los programas de compresión y descompresión de ficheros. Se aplica en el momento de comprimir y se incluye el valor obtenido dentro del fichero comprimido. Después de la descompresión se vuelve a aplicar el mismo algoritmo y se comparan ambos valores. La coincidencia será la garantía de que el fichero obtenido es idéntico al original.
Formatos en cadenas
printf(cadena de formato,variable1,variable2,..) |
Cadena de formato |
Dentro de la cadena de formatos deben repetirse tantos formatos como variables se pretenda manejar "%[rell1][alin1][anc1][prec1][tipo1][sepa1]%[rell1][alin1][anc1][prec1][tipo1][sepa1]" |
Hemos de mencionar aquí los separadores ya que no fueron mencionados en la página anterior Se puede introducir una cadena de separación al final de una cadena de formato que puede hacer, entre otras, función de separación entre dos cadenas. Por ejemplo, printf("%'*15.2f Euros",1475.875) nos devolvería: ********1475.88 Euros La función printf() permite presentar varios valores o variables con distintos formatos utilizando la sintaxis que se indica más arriba. Este ejemplo : printf("%'*15.2f Euros=%'*18.0f Pesetas",1475.875,1475.875*166.386) devuelve como resultado: ********1475.88 Euros=************245565 Pesetas |
Existe otra función PHP con características muy similares a la anterior. Se trata de sprintf().
La sintaxis es idéntica sprintf (cadena de formato, variable1,variable2, ...) y su única diferencia con printf es que, mientras que printf() imprime las variables utilizando el formato indicado, sprintf() puede guardar en una nueva variable la cadena resultante de la aplicación del formato.
Otras funciones con cadenas
Código ASCII y viceversa | ||
Función | Ejemplo | Resultado |
chr(código ASCII) | chr(97) | a |
ord("cadena") | ord("abadesa") | 97 |
Longitudes y conversiones mayúsculas/minúsculas | ||
Función | Ejemplo | Resultado |
strlen("cadena") | strlen("Mide la longitud de esta cadena") | 31 |
strtolower("cadena") | strtolower("CONVIERTE A MINÚSCULAS") | convierte a minúsculas |
strtoupper("cadena") | strtoupper("pasa a mayúsculas") | PASA A MAYÚSCULAS |
ucwords("cadena") | ucwords("todas empiezan por mayúscula") | Todas Empiezan Por Mayúscula |
ucfirst("cadena") | ucfirst("mayúscula al principio") | Mayúscula al principio |
Eliminar espacios | ||
Función | Ejemplo | Resultado |
ltrim("cadena") | ltrim("\n \nEliminar espacios") | Eliminar espacios |
rtrim("cadena") | rtrim("Eliminar espacios\n \n") | Eliminar espacios |
trim("cadena") | trim("\n \nEliminar espacios\n \n") | Eliminar espacios |
chop("cadena") | chop("\n \nEliminar espacios\n \n") | Eliminar espacios |
Extraer porciones de una cadena | ||
Función | Ejemplo | Resultado |
substr("cadena",n) | substr("Extrae caracteres",3) | rae caracteres |
substr("cadena",n) | substr("Extrae caracteres",0) | Extrae caracteres |
substr("cadena",n) | substr("Extrae caracteres",-5) | teres |
substr("cadena",n) | substr("Extrae caracteres",-2) | es |
substr("cadena",n,m) | substr("Extrae caracteres",2,6) | trae c |
substr("cadena",n,m) | substr("Extrae caracteres",0,8) | Extrae c |
substr("cadena",n,m) | substr("Extrae caracteres",2,-3) | trae caracte |
substr("cadena",n,m) | substr("Extrae caracteres",-7,5) | acter |
substr("cadena",n,m) | substr("Extrae caracteres",-7,-5) | ac |
substr("cadena",n,m) | substr("Extrae caracteres",-5,-7) | |
Modificaciones de cadenas | ||
Función | Ejemplo | Resultado |
strrev("cadena") | strrev("Invierte la cadena") | anedac al etreivnI |
str_repeat("cadena",n) | str_repeat("Rep",5) | RepRepRepRepRep |
str_pad("cadena",n,"Relleno",Tipo) | str_pad("Pepe",10,"*",STR_PAD_BOTH) | ***Pepe*** |
str_pad("cadena",n,"Relleno",Tipo) | str_pad("Pepe",10,"*",STR_PAD_LEFT) | ******Pepe |
str_pad("cadena",n,"Relleno",Tipo) | str_pad("Pepe",10,"*",STR_PAD_RIGHT) | Pepe****** |
str_pad("cadena",n,"Relleno",Tipo) | str_pad("Pepe",10,"*") | Pepe****** |
str_replace ("lo que dice",lo que dira,"Cadena") | str_replace("e","a","Pepe") | Papa |
str_replace ("lo que dice",lo que dira,"Cadena") | str_replace("pe","pa","Pepepe") | Pepapa |
str_replace ("lo que dice",lo que dira,"Cadena") | str_replace("Pepe","Luis","Pepe") | Luis |
substr_replace ("Cadena",lo que dira,n,m) | substr_replace("Pepe","Luis",2,-1) | PeLuise |
Formatos de salida
Estos son algunos ejemplos en los que continuamos con las aplicaciones de las funciones PHP al manejo de cadenas:
Marcas, divisiones y uniones de cadenas | ||
Variable cadena | Sintaxis | Resultado |
$a="Esta ' y \ y también NUL" | AddSlashes($a) | $a="Esta \' y \\ y también NUL" |
$a="Esta \' y \\ y también NUL" | stripslashes($a) | Esta ' y y también el nulo |
$a="Esta es una cadena larga que presuntamente será troceada" | chunk_split($a,5,"–") | Esta –es un–a cad–ena l–arga –que p–resun–tamen–te se–rá tr–ocead–a– |
$a="Esta es una cadena larga que presuntamente será troceada" | chunk_split($a,5) | Esta es un a cad ena l arga que p resun tamen te se rá tr ocead a |
$a="Esta es una cadena larga que presuntamente será troceada" | chunk_split($a,76,"-") | Esta es una cadena larga que presuntamente será troceada- |
$todo="v1=Esto+sera+una+variable&v2=esto+otra&p[]=incluso+un+array" | ||
Divide la cadena $todo en sus componentes | parse_str($todo); echo $v1; echo $v2; echo $p[0]; | Esto sera una variable esto otra incluso un array |
$a="Esta cadena sera devuelta en trozos" | ||
Recogerá en un array cada uno de los trozos delimitados por los separadores | $trozo1=explode(" ",$a); echo $trozo1[0]; echo $trozo1[1]; echo $trozo1[2]; echo $trozo1[3]; echo $trozo1[4]; echo $trozo1[5]; | Esta cadena sera devuelta en trozos |
Recogerá en un array cada uno de los trozos delimitados por los separadores | $trozo2=explode("a",$a); echo $trozo2[0]; echo $trozo2[1]; echo $trozo2[2]; echo $trozo2[3]; echo $trozo2[4]; echo $trozo2[5]; | Est c den ser devuelt en trozos |
Recogerá en un array cada uno de los trozos delimitados por los separadores hasta un máximo de 3 | $trozo3=explode(" ",$a,3); echo $trozo3[0]; echo $trozo3[1]; echo $trozo3[2]; echo $trozo3[3]; echo $trozo3[4]; echo $trozo3[5]; | Esta cadena sera devuelta en trozos |
Recogerá en un array cada uno de los trozos delimitados por los separadores hasta un máximo de 3 | $trozo4=explode("a",$a,3); echo $trozo4[0]; echo $trozo4[1]; echo $trozo4[2]; echo $trozo4[3]; echo $trozo4[4]; echo $trozo4[5]; | Est c dena sera devuelta en trozos |
implode(" ",$trozo1) | Esta cadena sera devuelta en trozos | |
implode("*",$trozo2) | Est* c*den* ser* devuelt* en trozos | |
implode("-",$trozo3) | Esta-cadena-sera devuelta en trozos | |
implode(":",$trozo4) | Est: c:dena sera devuelta en trozos | |
join(" ",$trozo1) | Esta cadena sera devuelta en trozos | |
join("*",$trozo2) | Est* c*den* ser* devuelt* en trozos | |
join("-",$trozo3) | Esta-cadena-sera devuelta en trozos | |
join(":",$trozo4) | Est: c:dena sera devuelta en trozos | |
$cadena="Esta cadena será dividida con la función strtok" | ||
$trocin = strtok ($cadena," "); while ($trocin) { echo "$trocin "; $trocin = strtok (" "); } | Esta cadena será dividida con la función strtok | |
$trocin = strtok ($cadena," "); echo $trocin," "; $trocin1 = strtok (" "); echo $trocin1," "; $trocin2 = strtok (" "); echo $trocin2," "; | Esta cadena Esta | |
$trocin = strtok ($cadena,"a"); while ($trocin) { echo "$trocin "; $trocin = strtok ("a"); } | Est c den será dividid con l función strtok | |
Encriptaciones y codificaciones | ||
Variable cadena | Sintaxis | Resultado |
$a="Esta es la cadena" | bin2hex($a) | 45737461206573206c6120636164656e610a |
$a="Encriptame" | crypt($a) | $1$Mz4.lw/.$MOSCaVDKLTI9xS19gGIkM0 |
$a="Encriptame" | crypt($a) | $1$KM4.Li3.$S2uxnG/wCrCWO47p83bUM0 |
$a="Encriptame" | crypt($a,"zq") | zqQ4qOeELzPFg |
$a="Encriptame" | crypt($a,"zq") | zqQ4qOeELzPFg |
$a="Encriptame" | crypt($a,"@$") | @$eKFJms35tL. |
$a="Encriptame" | md5($a) | 67c3ca0aefda2595138168a85e7b33a0 |
$a="Encriptame" | md5($a) | 67c3ca0aefda2595138168a85e7b33a0 |
$a="Encriptame" | crc32($a) | -1128189886 |
Búsquedas y recuentos de caracteres | ||
Variable cadena | Sintaxis | Resultado |
$a="Contando caracteres" | count_chars($a,0) | Array |
$a="Contando caracteres" | $b=count_chars($a,0); echo $b[97]; | 3 |
$a="Contando caracteres" | $b=count_chars($a,0); echo $b[ord("o")] | 2 |
$a="Pepe Perez el perverso pecador en penitencia" | substr_count($a,"Pe"); | 2 |
$a="Pepe Perez el perverso pecador en penitencia" | substr_count($a,"pe"); | 4 |
La función count_char($a,0) devuelve un array cuyos índices son los códigos ASCII de los caracteres y cuyos valores son el número de veces que se repite cada uno de ellos.
La función substr_count($a,"cadena") determina el número de veces que aparece la cadena dentro de $a. Diferencia entre mayúsculas y minúsculas.
Fuente:
Página del ifstic: http://www.isftic.mepsyd.es/formacion/enred/
No hay comentarios:
Publicar un comentario