Está en la página 1de 2

Cadenas alfanuméricas (II)

Funciones de cadenas
Formatos de salida
Como complemento a las descritas
en la página anterior, añadimos Estos son algunos ejemplos en los que continuamos con las aplicaciones de las
aquí algunas otras funciones PHP funciones PHP al manejo de cadenas:
que también permiten manejar
cadenas de caracteres. Marcas, divisiones y uniones de cadenas
AddSlashes(cadena) Variable cadena Sintaxis Resultado
$a="Esta ' y \ y
Inserta el carácter \ delante los AddSlashes($a) $a="Esta \' y \\ y también NUL"
también NUL"
siguientes: ", ', \ y NUL (el bit
nulo). $a="Esta \' y \\ y
stripslashes($a) Esta ' y y también el nulo
también NUL"
stripslashes(cadena) $a="Esta es una
cadena larga que chunk_split Esta –es un–a cad–ena l–arga –que p–resun–tamen–
Quita las marcas añadidas a una presuntamente será ($a,5,"–") te se–rá tr–ocead–a–
cadena con la función AddSlashes troceada"
(). $a="Esta es una
cadena larga que Esta es un a cad ena l arga que p resun tamen te se
chunk_split(cad, n, sep ) presuntamente será
chunk_split($a,5)
rá tr ocead a
troceada"
Devuelve la cadena (cad) después
de haberle insertado, cada n $a="Esta es una
caracteres, la cadena indicada en cadena larga que chunk_split Esta es una cadena larga que presuntamente será
el parámetro sep. presuntamente será ($a,76,"-") troceada-
troceada"
Si no se indica sep PHP pondrá un
espacio. $todo="v1=Esto+sera+una+variable&v2=esto+otra&p[]=incluso+un+array"
Si no se establece el parámetro n parse_str($todo);
insertará el separador cada 76 Divide la cadena Esto sera una variable
echo $v1;
caracteres. $todo en sus esto otra
echo $v2;
componentes incluso un array
Esta función coloca siempre un echo $p[0];
separador al final de la cadena. $a="Esta cadena sera devuelta en trozos"
parse_str(cadena) $trozo1=explode("
",$a); Esta
Recogerá en un
Devuelve las variables –con su echo $trozo1[0]; cadena
array cada uno de
valor– indicadas dentro de la echo $trozo1[1]; sera
los trozos
cadena (observa la sintaxis del echo $trozo1[2]; devuelta
delimitados por los
echo $trozo1[3]; en
ejemplo). separadores
echo $trozo1[4]; trozos
Dentro de la cadena cada variable
echo $trozo1[5];
se denomina con un nombre que
va seguido de un signo igual. Los $trozo2=explode
espacios se señalan con el signo + ("a",$a); Est
Recogerá en un
echo $trozo2[0]; c
y los separadores de variables son array cada uno de
echo $trozo2[1]; den
signos & los trozos
echo $trozo2[2]; ser
delimitados por los
echo $trozo2[3]; devuelt
explode(sep, cad,n) separadores
echo $trozo2[4]; en trozos
echo $trozo2[5];
Devuelve un array cuyos
elementos contienen cada una de $trozo3=explode("
las porciones de la cadena (cad) Recogerá en un ",$a,3);
array cada uno de echo $trozo3[0]; Esta
comprendidas entre dos de los cadena
los trozos echo $trozo3[1];
caracteres señalados como (sep) sera devuelta en trozos
delimitados por los echo $trozo3[2];
hasta el máximo de porciones separadores hasta echo $trozo3[3];
señaladas (n). un máximo de 3 echo $trozo3[4];
Los caracteres separadores no son echo $trozo3[5];
incluídos en las cadenas
$trozo4=explode
resultantes. Si no se indica la
Recogerá en un ("a",$a,3);
cantidad de porciones, será array cada uno de echo $trozo4[0]; Est
fraccionada toda la cadena. los trozos echo $trozo4[1]; c
Si se indica número, el último delimitados por los echo $trozo4[2]; dena sera devuelta en trozos
trozo contendrá toda la cadena separadores hasta echo $trozo4[3];
restante. un máximo de 3 echo $trozo4[4];
echo $trozo4[5];
implode(sep, array)
implode(" ",$trozo1) Esta cadena sera devuelta en trozos
Devuelve una cadena formada por implode("*",
Est* c*den* ser* devuelt* en trozos
todos los elementos del array $trozo2)
separados mediante los caracteres implode("-",
indicados en sep. Esta-cadena-sera devuelta en trozos
$trozo3)

join(sep, array) implode(":",


Est: c:dena sera devuelta en trozos
$trozo4)
Es idéntica a implode. join(" ",$trozo1) Esta cadena sera devuelta en trozos

strtok(cad , sep) join("*",$trozo2) Est* c*den* ser* devuelt* en trozos


join("-",$trozo3) Esta-cadena-sera devuelta en trozos
Esta función divide la cadena cad
join(":",$trozo4) Est: c:dena sera devuelta en trozos
en trozos delimitados por el
separador que se indica en sep. $cadena="Esta cadena será dividida con la función strtok"
Cuando se invoca la primera vez – Esta
extrae el primer trozo– debe llevar $trocin = strtok ($cadena," "); cadena
las sintaxis strtok(cadena,sep). será
Al invocarla sucesivamente, se while ($trocin) { dividida
escribe solo strtok (" ") e irá echo "$trocin<br>"; con
recogiendo de forma secuencial los $trocin = strtok (" "); la
trozos sucesivos. } función
strtok
$trocin = strtok ($cadena," ");
Encriptación de cadenas echo $trocin,"<br>";
Esta
$trocin1 = strtok (" ");
cadena
PHP dispone de funciones que echo $trocin1,"<br>";
Esta
$trocin2 = strtok (" ");
permiten codificar o encriptar
echo $trocin2,"<br>";
cadenas de caracteres.
Est
bin2hex(cadena) $trocin = strtok ($cadena,"a");
c
while ($trocin) {
den
Devuelve una cadena ASCII que echo "$trocin<br>";
será dividid
contiene la representación $trocin = strtok ("a");
con l
hexadecimal de la cadena. La }
función strtok
conversión se realiza byte a byte,
con los 4 bits superiores primero. Encriptaciones y codificaciones
Variable cadena Sintaxis Resultado
crypt(cadena)
$a="Esta es la
bin2hex($a) 45737461206573206c6120636164656e610a
Devuelve la cadena encriptada cadena"
utilizando una semilla aleatoria de $a="Encriptame" crypt($a) $1$5x4.oB1.$VwrU6e.IoDsICs8uEcXMB0
dos caracteres.
$a="Encriptame" crypt($a) $1$R05.GY5.$t755l53QY6awOmlsrwkVI1
Por su caracter aleatorio, si se $a="Encriptame" crypt($a,"zq") zqQ4qOeELzPFg
ejecuta dos veces seguidas –tal $a="Encriptame" crypt($a,"zq") zqQ4qOeELzPFg
como puedes observar en el
ejemplo– dará dos resultados $a="Encriptame" crypt($a,"@$") @$t3m36xiW556
diferentes. $a="Encriptame" md5($a) 67c3ca0aefda2595138168a85e7b33a0
$a="Encriptame" md5($a) 67c3ca0aefda2595138168a85e7b33a0
crypt(cadena,"xx")
$a="Encriptame" crc32($a) -1128189886
Devuelve la cadena encriptada
utilizando como semilla los dos Búsquedas y recuentos de caracteres
caracteres (entre comillas) que se Variable cadena Sintaxis Resultado
escriben como segundo parámetro $a="Contando
de la función. count_chars($a,0) Array
caracteres"
Tanto en este supuesto como en el
anterior, los dos primeros $b=count_chars
$a="Contando
($a,0); 3
caracteres de la cadena encrip- caracteres"
echo $b[97];
tada coinciden con los que han
sido utilizados como semilla. $b=count_chars
$a="Contando
($a,0); 2
caracteres"
md5(cadena,"xx") echo $b[ord("o")]
$a="Pepe Perez el
Aplica el algoritmo md5 –lo substr_count
perverso pecador en 2
comentamos a la derecha– y ($a,"Pe");
penitencia"
devuelve la huella digital generada
$a="Pepe Perez el
por él. substr_count
perverso pecador en 4
($a,"pe");
penitencia"
crc32(cadena)

Aplica el algoritmo crc32 de La función count_char($a,0) devuelve un array cuyos índices son los códigos ASCII
comprobación de integridad y de los caracteres y cuyos valores son el número de veces que se repite cada uno de ellos.
devuelve el valor del mismo.
La función substr_count($a,"cadena") determina el número de veces que aparece
Se utiliza muchísimo en los
la cadena dentro de $a. Diferencia entre mayúsculas y minúsculas.
programas de compresión y
descompresión de ficheros. Se
aplica en el momento de El algoritmo md5
comprimir y se incluye el valor
obtenido dentro del fichero
comprimido. Después de la Este algoritmo presenta como peculiaridades que –tenga la dimensión que tenga la
descompresión se vuelve a aplicar cadena a la que se aplique– genera siempre una huella digital que no es otra cosa que
el mismo algoritmo y se comparan una cadena formada por 32 caracteres y que no dispone de ningún mecanismo inverso.
ambos valores. La coincidencia
será la garantía de que el fichero Seguramente habrás vivido esta experiencia. En muchos espacios de Internet –grupos
obtenido es idéntico al original. 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.

Anterior Indice Siguiente

También podría gustarte