8-Cadena de caracteres

En este capítulo se comentaran todos los pormenores relacionados con cadenas de caracteres, las funciones existentes,etc.

Cadenas de caracteres

Una cadena consiste en una secuencia de caracteres que se encuentran comprendidos entre unos delimitadores que pueden ser:
-Comillas simples ' '
-Comillas dobles " "
-Documento incrustado <<< >>>

En caso de que se desee por ejemplo unas " " dentro de las comillas de la cadena de caracter es necesario realizar la accion que se denomina escapar un caracter que consiste en precederlo de una \ es decir \". Los caracteres especiales que pueden aparecer dentro de un documento con delimitacion son:

Secuencia
Significado
\n
Nueva linea
\r
Retorno de carro
\t
Tabulacion horizontal
\\
Barra invertida
\$
Signo de dolar
\"
Comillas dobles
\[0-7]{1,3}
Carcter ASCII que coindice con el numero octal
\x[0-9A-Fa-f]{1,2}
Caracter ASCII que coindice con el numero hexadecimal

El caso de documento incrustado es diferente al de ambas comillas.Su sintaxis es la siguiente:

<<<Identificador
Cadena de caracteres
Identificador;

El resultado obtenido con documento incrustado es el texto mostrado igual que se ha introducido.

La funcion chr(valor) nos devuelve en una variable del tipo cadena el caracter de la tabla de codigos ASCII asociado a un valor que recibe como parametro, el valor que se pase debe estar entre 0 y 255.
La funcion ord(cadena) nos devuelve un numero entero que se corresponde con el codigo ASCII del primer caracter que recibe como parametro.

Visualizacion de cadenas

-Echo: Es el modo de visualizacion mas empleado.Su sintaxis es la siguiente: echo "texto";
-Print: Es la mas sencilla de todas y se encarga de mostrar una cadena de caracteres sobre su salida estandar.No soporta ningun formato de salida y su sintaxis es: print(cadena);
-Printf(formato,[valores]);
Su funcionamiento es el mismo que en el caso anterior, la unica diferencia es que este soporta formatos de salida como su alineacion(por defeto a la izquierda),valor numerico( numero minimo de caracteres que deben mostrarse),numero de decimales y tipo de datos cuyas posibilidades son:

Simbolo
Significado
%
Representa el simbolo del porcentaje
b
El argumento se trata como nº entero y se representa en codificacion binaria.
c
El argumento se trata como nº entero y se muestra el caracter cuyo codigo ASCII se corresponde con el valor.
d
El argumento se trata como nº entero y se representa en codificacion decimal sin parte fraccionaria
f
El argumento se trata como un nº de tipo double y se representa como un decimal sin coma flotante
o
El argumento se trata como un nº entero y se representa en codificacion octal
s
El argumento se trata y representa como una cadena de caracteres
x
El argumento se considera un nº entero y se representa en codificacion hexadecimal en minusculas
X
El argumento se considera un nº entero y se representa en codificacion hexadecimal en mayusculas

-Sprintf(formato,[valores]); su funcionamiento es identico a printf lo unico que la cadena resultante de aplicarle un determinado formato se guarda en una variable.

Alteracion del contenido

En ocasiones es necesario emplear dichas funciones para alterar el formato de salida de las cadenas. Las funciones empleadas para modificar dicho formato son:

-chop(cadena); Devuelve la cadena de caracteres con los caracteres de blanco y nueva linea eliminados
-ltrim(cadena); Elimina los blancos que aparecen a la derecha de una cadena de caracteres
-rtrim(cadena); Elimina los blancos que aparecen por la derecha en una cadena de caracteres
-trim(cadena); Elimina los blancos que aparecen a izquiera y derecha de la cadena de caracteres
-str_pad(cadena,longitud,relleno,lugar); Comprueba si la longitud es menor que el valor indicado, si es asi añade los caracteres necesarios.El lugar de añadir puede ser:
str_pad_left añade por la derecha(opcion por defecto), str_pad_right añade por la izquierda y str_pad_both añade por ambos extremos.
-str_repeat(caracter,numero_veces); Repite un caracter el numero de veces indicado
-strtolower(cadena); Pasa toda la cadena a letras pequeñas
-strtoupper(cadena); Pasa toda la cadena a letras grandes
-ucfirst(cadena); Pasa a mayuscula el primer caracter de una cadena
-ucwords(cadena); Pone en mayusculas el primer caracter de cada palabra de la cadena
-str_replace(subcadena1,subcadena2,cadena); Sustituye una palabra por otra dentro de una cadena
-strtr(cadena,originales,traducidos); Traduce ciertos caracteres .Ejemplo: $persona=strt($persona,"áéíóú","a,e,i,o,u"); de esta forma cambiaria todas las vocales con acento por vocales sin acento.
-substr_replace(cadena,nueva,comienzo,longitud); Sustituye una porcion del contenido de una cadena

Acceso al contenido

-strlen(cadena); Indica el nº de caracteres de una cadena
-count_chars(cadena,modo); Numero de repeticiones de un caracter en una cadena. Los modos posibles son:

0->Matriz indexada con frecuencia de aparicion de todos los caracteres del codigo ASCII
1->Matriz con caracteres ASCII con frecuencia mayor que 0
2->Matriz con caracteres que no aparecen en la cadena
3->Cadena con caracteres usados en el codigo ASCII
4->Cadena con caracteres no usados en el codigo ASCII

-substr_count(cadena,subcadena); Frecuencia de aparicion de una cadena
-strchr(cadena,caracter); Devuelve la subcadena que comienza en la primera aparicion del caracter indicado
-strstr(cadena,subcadena); Localiza subcadena dentro de la cadena original
-stristr(cadena,subcadena); Igual que la funcion anterior pero sin distincion entre mayusculas y minusculas
-strpos(cadena,subcadena); Primera ocurrencia de una cadena en otra
-strrpos(cadena,subcadena); Ultima ocurrencia de una cadena en otra
-ord(cadena); Devuelve el valor ASCII de un caracter
-substr(cadena,comienzo,longitud); Porcion de texto que empieza en una posicion y tiene una longitud
-strcmp(cadena1,cadena2); Compara dos cadenas siendo sensible a mayusculas y minusculas
-strcasecmp(cadena1,cadena2); Compara dos cadenas sin ser sensible a mayusculas y minusculas
-strncmp(cadena1,cadena2,tamaño); Compara los N primeros caracteres de una cadena
-strnatcmp(cadena1,cadena2); Sensible a mayusculas y minusculas.Compara dos cadenas.
-strnatcasecmp(cadena1,cadena2); No sensible a mayusculas y minusculas.Compara dos cadenas.
-chunk_split(cadena,longitud,separador); Coge una cadena de caracteres e introduce separadores a una distancia determinada. No modifica el orgininal sino que es una funcion nueva.
-explode(separador,cadena,limite); Permite obtener una matriz de cadenas de caracteres extraidas del original.
-implode(separador,elementos); Junta en una cadena los elementos de una matriz usando como concatenacion el separador pasacdo como parametro.
-parse_str(cadena); Permite extraer y crear variables que forman parte de una cadena que se corresponde con un "query string" recibido de una URL.

*Apoyo a HTML

-addcslashes(cadena,lista); Devuelve una cadena que tiene escapados todos los caracteres como parámetro.
-addslashes(cadena); Devuelve una cadena que tiene escapados todos los caracteres logicos
-stripcslashes(); y stripslashes(); Reciben cadenas que pueden contener caracteres de de escapes y los desescapan
-quotemeta(cadena); Esacapa los caracteres especiales
-htmlspecialchars(cadena); Lleva a cabo conversiones como &->&amp,"->&quot
-htmlentities(); Convierte todos los caracteres a html
-get_html_translation_table(htmlentities o html_specialchars); Obtiene la relacion de traduccion de cada caracter especial.
-array_flip(); Cambia el papal entre claves y valores de una matriz asociativa
-get_meta_tags(nombre_fichero,include_path); Devuelve todos los meta tags que contiene un HTML.
-strip_tags(cadena,mostrar_tags); Omite etiquetas PHP y HTML , lo de mostrar_tags son las cadenas HTML y PHP no deben ser omitidas en la lectura.
-n12br(cadena); Permite sustituir saltos de linea por <br>
-parse_url(cadena_url); Devuelve una matriz asociativa con los siguientes campos:

Campo
Significado
scheme
Http
host
Ip o DNS
port
puerto
user
nombre usuario
password
contraseña
path
path completo al recurso
query
query string con datos al recurso
urldecode
decodifica la informacion
urlencode
Codifica la informacion