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 &->&,"->"
-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 |