YOUTH PROGRAM SUMMARY
CHALLENGES Tracking Client Data
Las funciones más útiles para la manipulación de cadenas de caracteres son las siguientes:
Recuerde las funciones
explode
,implode
ystr_split
anteriormente presentadas (véanse sección Matrices - Funciones útiles). Otras funciones, más específicamente relacionadas con la gestión de formularios se estudian en el capítulo Gestionar los formularios.http://www.eni-training.com/client_net/mediabook.aspx?idR=85125 2/11
cadena
Cadena en cuestión.cadena
Cadena que se va a procesar.strtolower - strtoupper - ucfirst - ucwords - lcfirst
Estas funciones permiten realizar conversiones de minúsculas/mayúsculas, posiblemente limitadas a la(s) primera(s) palabra(s) de la cadena.
Sintaxis
cadena strtolower(cadena cadena) cadena strtoupper(cadena cadena) cadena ucfirst(cadena cadena) cadena ucwords(cadena cadena) cadena lcfirst(cadena cadena)
La función
strtolower
convierte todos los caracteres de una cadena en minúsculas. La funciónstrtoupper
convierte todos los caracteres de una cadena en mayúsculas. La funciónucfirst
convierte el primer carácter de una cadena en mayúsculas.La función
ucwords
convierte el primer carácter de cada palabra de una cadena en mayúsculas.La función
lcfirst
convierte el primer carácter de una cadena en minúscula (a partir de la versión 5.3).Ejemplo <?php
$x = ’OLIVIER HEURTEL’; $y = ’olivier heurtel’;
echo "strtolower(’$x’) = ",strtolower($x),’<br />’; echo "strtoupper(’$y’) = ",strtoupper($y),’<br />’; echo "ucfirst(’$y’) = ",ucfirst($y),’<br />’;
echo "lcfirst(’$x’) = ",lcfirst($x),’<br />’; echo "ucwords(’$y’) = ",ucwords($y),’<br />’; ?>
Resultado
strtolower(’OLIVIER HEURTEL’) = olivier heurtel strtoupper(’olivier heurtel’) = OLIVIER HEURTEL ucfirst(’olivier heurtel’) = Olivier heurtel lcfirst(’OLIVIER HEURTEL’) = oLIVIER HEURTEL ucwords(’olivier heurtel’) = Olivier Heurtel strcmp - strcasecmp
http://www.eni-training.com/client_net/mediabook.aspx?idR=85125 3/11
formato
Cadena de formato que presenta varias directivas según las especificaciones que figuran a continuación.valor
Valor que se integrará en la cadena.Ambas funciones devuelven un número negativo si
cadena1
es menor quecadena2
, un número igual a 0 si son iguales y un número positivo sicadena1
es mayor quecadena2
.strcmp
es sensible a mayúsculas y minúsculas, mientras questrcasecmp
no lo es. Ejemplo<?php
$x = ’Olivier’; $y = ’olivier’;
echo "strcmp(’$x’,’$y’) = ",strcmp($x,$y),’<br />’;
echo "strcasecmp(’$x’,’$y’) = ",strcasecmp($x,$y),’<br />’; ?>
Resultado
strcmp(’Olivier’,’olivier’) = -1 strcasecmp(’Olivier’,’olivier’) = 0 [s]printf
Las funciones
printf
ysprintf
permiten dar formato a una cadena (idénticas a las funciones de C equivalentes).Sintaxis
cadena sprintf(cadena formato[, mixto valor[, ...]]) entero printf(cadena formato[, mixto valor[, ...]])
sprintf
devuelve el resultado en forma (oFALSE
en caso de error), mientras queprintf
muestra directamente el resultado (como la instrucciónecho
) y devuelve la longitud de la cadena con formato en caso de éxito oFALSE
en caso de error.La cadena
format
debe contener una directiva de formato para cada argumentovalor
; esta directiva de formato especifica la ubicación y el formato del valor correspondiente. La correspondencia entre una directiva de formato y un valor es de posicionamiento (primera directiva para el primer valor...).Las instrucciones de formato comienzan con el carácter % seguido de una a cinco informaciones, siendo la última la única obligatoria:
%[relleno][alineación][longitud][precisión]tipo Las informaciones son las siguientes:
http://www.eni-training.com/client_net/mediabook.aspx?idR=85125 4/11
alineación a la izquierda.
longitud
Especifica el número mínimo de caracteres del elemento formateado.precisión
Indica el número de dígitos usados para el formato de un número de punto flotante (válido sólo si el elemento asociado es un número).tipo
Da el tipo del valor que se va a insertar:c: entero que se sustituye por el carácter cuyo código ASCII tiene este valor;
d: entero que se representará como tal;
f: número de punto flotante que se representará como tal (teniendo en cuenta la configuración regional);
F: número de punto flotante que se representará como tal (sin tener en cuenta la configuración regional); apareció con la versión 5.0.3;
s: ninguno, se representará como una cadena.
Directiva Valor Resultado Explicación
%d 1 1 Número entero sin un formato especial. %02d 1 01
02
= completar con el carácter cero, en unalongitud mínima de dos.
%f 1/3 0.333333 Número de punto flotante sin un formato especial.
%.2f 1/3 0.33
.2
= dos dígitos después del separador decimal.%02.3f 1/3 00.333
.3
= tres dígitos después del separador decimal.02
= completar con el carácter cero, con el separador decimal, en una longitud mínima de dos.%s Olivier! Olivier! Cadena sin un formato especial.
%’.10s Olivier ...Olivier
’.10
= completar con un punto para llegar a una longitud mínima de diez caracteres (alineación predeterminada).%’.-10s Olivier Olivier...
’.-10
= completar con un punto para llegar a una longitud mínima de diez Para obtener un carácter "%" en el resultado final, debe duplicarlo en el formato.Algunos ejemplos:
http://www.eni-training.com/client_net/mediabook.aspx?idR=85125 5/11
formato
Cadena de formato que presenta varias directivas según las especificaciones dadas anteriormente.valores
Matriz que da los valores que se van a integrar en la cadena. Ejemplo<?php
echo ’Formato de una fecha: ’,
sprintf(’%02d/%02d/%04d’,1,1,2001),’<br />’; echo ’Formato de números: ’,
sprintf(’%01.2f - %01.2f’,1/3,12345678.9),’<br />’; echo ’Pordentaje: ’,
sprintf(’%01.2f %%’,12.3),’<br />’;
echo ’Utilización de las opciones de relleno:<br />’; echo ’<tt>’; // fuente no proporcional
printf("%’.-10s%’.5.2f<br />",’Libros’,9.35); // printf direct printf("%’.-10s%’.5.2f<br />",’Discos’,99.9); // printf direct echo ’</tt>’;
?> Resultado
Formato de una fecha: 01/01/2001 Formato de números: 0.33 - 12345678.90 Porcentaje: 12.30 %
Utilización de las opciones de relleno: Libros...9.35
Discos...99.90 v[s]printf
Las funciones
vprintf
yvsprintf
son idénticas a las funcionesprintf
ysprintf
, pero aceptan como segundo parámetro una matriz que contiene los distintos valores que se van a utilizar (en lugar de varios parámetros).Sintaxis
cadena vsprintf(cadena formato[, matriz valores]) entero vprintf(cadena formato[, matriz valores]) Con
Ejemplo <?php
$datos = array(array(’Libros’,9.35),array(’Discos’,99.9)); echo ’<tt>’; // fuente no proporcional
http://www.eni-training.com/client_net/mediabook.aspx?idR=85125 6/11
valor
Número que se va a formatear.decimales
Número de decimales (ninguna parte decimal por defecto).separador_decimal
Separador decimal (punto por defecto).separador_millares
Separador de millares (coma por defecto). Discos...99.90number_format
La función
number_format
permite dar formato a un número. Sintaxiscadena number_format(número valor[, entero decimales[, cadena separador_decimal, cadena separador_millares]])
Se puede llamar a la función con uno, dos o cuatro argumentos, pero no tres: si se da un tercero, el cuarto es obligatorio.
Si el número tiene una precisión superior a la solicitada (parámetro decimales), el número se redondea a la precisión solicitada.
Ejemplo <?php
$x = 1234.567;
echo "number_format($x) = ",number_format($x),’<br />’; echo "number_format($x,1) = ",number_format($x,1),’<br />’; echo "number_format($x,2,’,’,’ ’) = ", number_format($x,2,’,’,’ ’),’<br />’; ?> Resultado number_format(1234.567) = 1,235 number_format(1234.567,1) = 1,234.6 number_format(1234.567,2,’,’,’ ’) = 1 234,57
Observe, en estos ejemplos, los redondeos automáticos cuando la precisión solicitada es inferior a la precisión del número.
ltrim - rtrim - trim
Estas funciones permiten eliminar los caracteres "blancos" u otros caracteres al principio de la cadena, al final de la cadena o en ambos lados.
http://www.eni-training.com/client_net/mediabook.aspx?idR=85125 7/11
cadena
Cadena que se va a procesar.caracteres
Cadena que indica la lista de caracteres que se va a eliminar. Si este parámetro está ausente, los caracteres "blancos" se eliminan.cadena
Cadena que se va a procesar.inicio
Posición del primer carácter de la subcadena que se va a extraer (atención 0 = 1er carácter).longitud
Número de caracteres que se van a extraer (por defecto, hasta el final de la cadena).Las tres funciones devuelven una cadena igual a la cadena inicial en la que los caracteres "blancos" o los caracteres especificados se han eliminado al principio (
ltrim
conl
= left = a la izquierda) al final (rtrim
conr
= right = a la derecha) o en ambos lados (trim
).Los caracteres "blancos" son el salto de línea (\n = código ASCII 10), el retorno de carro (\r = código ASCII 13), la tabulación (\t = código ASCII 9), el carácter NULL (\0 = código ASCII 0) y el espacio.
Ejemplo <?php
$x = "\t\t\t x \n\r";
echo ’strlen($x) = ’,strlen($x),’<br />’;
echo ’strlen(ltrim($x)) = ’,strlen(ltrim($x)),’<br />’; echo ’strlen(rtrim($x)) = ’,strlen(rtrim($x)),’<br />’; echo ’strlen(trim($x)) = ’,strlen(trim($x)),’<br />’; $x = ’***+-Olivier-+***’;
echo "trim(’$x’,’*+-’) = ",trim($x,’*+-’), ’<br />’; ?> Resultado strlen($x) = 8 strlen(ltrim($x)) = 4 strlen(rtrim($x)) = 5 strlen(trim($x)) = 1 trim(’***+-Olivier-+***’,’*+-’) = Olivier substr
La función
substr
permite extraer una subcadena de una cadena. Sintaxiscadena substr(cadena cadena, entero inicio[, entero longitud])
Si el argumento
inicio
es positivo, la subcadena extraída comienza en elwww.FreeLibros.me
http://www.eni-training.com/client_net/mediabook.aspx?idR=85125 8/11
secuencia
Secuencia de caracteres a repetir.repeticiones
Número de repeticiones deseadas.caracteres indicado por el argumento
longitud
.Si el argumento
longitud
se especifica y es negativo, la subcadena extraída termina al final de la cadena, menos el número de caracteres indicado por el valor absoluto del argumentolongitud
.Ejemplo <?php
// 0123456 => para el control $x = ’Olivier’;
echo "substr(’$x’,3) = ",substr($x,3),’<br />’; echo "substr(’$x’,3,2) = ",substr($x,3,2),’<br />’; echo "substr(’$x’,-4) = ",substr($x,-4),’<br />’; echo "substr(’$x’,-4,3) = ",substr($x,-4,3),’<br />’; ?> Resultado substr(’Olivier’,3) = vier substr(’Olivier’,3,2) = vi substr(’Olivier’,-4) = vier substr(’Olivier’,-4,3) = vie str_repeat
La función
str_repeat
permite construir una cadena por repetición de caracteres. Sintaxiscadena str_repeat(cadena secuencia, entero repeticiones)
Ejemplo <?php echo str_repeat(’abc’,3); ?> Resultado abcabcabc
strpos - strrpos - stripos - strripos
Estas funciones permiten buscar la posición de una ocurrencia (carácter o cadena) dentro de una
www.FreeLibros.me
http://www.eni-training.com/client_net/mediabook.aspx?idR=85125 9/11
a_procesar
Cadena que se va a procesar.buscar
Elemento buscado.inicio
Número del carácter (0 = primer carácter) a partir del cual se debe llevar a cabo la búsqueda (por defecto, el inicio de la cadena). Constrpos
busca, en la cadenaa_procesar
, la primera ocurrencia de la cadena debuscar
, comenzando a apartir del carácter númeroinicio
(0 = primer carácter).strrpos
busca, en la cadenaa_procesar
, la última ocurrencia de la cadena debuscar
, comenzando a apartir del carácter númeroinicio
(0 = primer carácter). Si elinicio
es negativo (-
n
), losn
últimos caracteres de la cadenaa_procesar
se ignoran. El parámetroinicio
se añadió en la versión 5. En la versión 4, sólo se tenía en cuenta el primer carácter de la cadenabuscar
.Las dos funciones son sensibles a mayúsculas y minúsculas (en mayúsculas no es igual que en minúsculas). Las funciones
stripos
ystrripos
son idénticas respectivamente a las funcionesstrpos
ystrrpos
, pero no son sensibles a mayúsculas y minúsculas; esto se introdujo en la versión 5.Estas cuatro funciones devuelven la posición de la ocurrencia encontrada (0 = primer carácter) o
FALSE
si el elemento de búsqueda no se encuentra.FALSE
es equivalente a 0, por lo tanto es fácil confundir el caso en el que el elemento no se ha encontrado y en el que se encontró al principio de la cadena. La técnica consiste en utilizar el operador de comparación "===" (tres signos igual), que permite comparar el valor y el tipo de dos expresiones (para más detalles, véase el capítulo Operadores).Ejemplo <?php // 0123456789 ... => para el control $correo = ’[email protected]’; // strrpos $posición = strrpos($mail,’@’);
echo "@ está en la posición $posición en $correo<br />"; // strpos
$posición = strpos($correo,’olivier’);
echo "’olivier’ está en la posición $posición en $correo<br />"; // Ocurrencia al principio de la cadena
$posición = strpos($correo,’contacto’); if (! $posición) { // prueba no superada
echo "’contacto’ no se puede encontrar en $correo<br />"; } else {
echo "’contacto’ está en la posición $posición en $correo<br />";
}
if ($posición === FALSE) { // prueba superada: ===
echo "’contacto’ no se puede encontrar en $correo<br />";
www.FreeLibros.me
http://www.eni-training.com/client_net/mediabook.aspx?idR=85125 10/11
a_procesar
Cadena que se va a procesar.buscar
Elemento buscado.antes
Indica si la función devuelve la cadena situada antes (valorTRUE
) o después (valorFALSE
, por defecto) de la cadena buscada.echo "’información’ está en la posición $posición en $correo<br />";
} ?> Resultado
@ está en la posición 7 en [email protected]
’olivier’ está en la posición 8 en [email protected] ’contacto’ no se puede encontrar en [email protected] ’contacto’ está en la posición 0 en [email protected] ’información’ no se puede encontrar en [email protected] strstr - stristr - strrchr
Estas funciones permiten extraer la subcadena comenzando a partir de una ocurrencia determinada de un carácter o de una cadena.
Sintaxis
cadena strstr(cadena a_procesar, cadena buscar, booleano antes) cadena stristr(cadena a_procesar, cadena buscar, booleano antes) cadena strrchr(cadena a_procesar, carácter buscar)
Las funciones
strstr
ystristr
buscan, en la cadenaa_procesar
, la primera ocurrencia de lacadenabuscar
y devuelven la porción final o inicial de la cadena comenzando desde esta ocurrencia (incluida). La funciónstrstr
es sensible a mayúsculas y minúsculas (una mayúscula es diferente de una minúscula), mientras questristr
no lo es.strrchr
busca, en la cadenaa_procesar
, la última ocurrencia del carácterbuscar
y devuelve la porción final o inicial de la cadena comenzando desde esta ocurrencia (incluida). Sibuscar
es una cadena de varios caracteres, sólo el primero se tiene en cuenta.strrchr
es sensible a mayúsculas y minúsculas.Estas tres funciones devuelven
FALSE
si no se encuentra el elemento buscado. Ejemplo<?php
$correo = ’[email protected]’; echo "Resto del $correo comenzando por:<br />"; // strrchr
$resto = strrchr($correo,’-’);
http://www.eni-training.com/client_net/mediabook.aspx?idR=85125 11/11
echo "Inicio de $correo terminando por:<br />"; // strstr&nbs
http://www.eni-training.com/client_net/mediabook.aspx?idR=85127 1/2
expresión
puede ser un valor literal de cualquier tipo (123
,’Hola’
,TRUE
...), otra variable o cualquier expresión que combina valores literales, variables con funciones y operadores.Ejemplo <?php
$nombre = ’Olivier’; $índice = 1;
?>
Con esta sintaxis, la asignación se efectúa por valor, es decir, que el valor de la expresión situada a la derecha del signo igual se copia en la variable mencionada a la izquierda. Al realizar una asignación de una variable en otra, la modificación posterior de la primera variable no tiene efecto en la segunda. Ejemplo
<?php
// Inicialización de una variable. $x = 1;
// Asignación de la variable $x en la variable $y. $y = $x;
// Modificación de la variable $x. $x = 2;
// Visualización del resultado. echo "\$x = $x<br />";
echo "\$y = $y<br />"; ?>
Resultado $x = 2 $y = 1
La operación de asignación es una expresión que tiene un valor igual al valor asignado y que se puede utilizar directamente en otra expresión. Por ejemplo, el valor de la expresión
$x = 1
es1
y se puede escribir una instrucción de tipo$y=($x=1)+2
que asigna al valor 3 a$y
.Ejemplo <?php
// Asignación de una instrucción de $x y $y. $y = ($x = 1) + 2;
// Visualización del resultado. echo "\$x = $x<br />";
echo "\$y = $y<br />"; ?>
Resultado $x = 1
http://www.eni-training.com/client_net/mediabook.aspx?idR=85128 1/1
¿Qué es PHP?
Estructura básica de una página PHP Configuración de PHP
Utilizar PHP desde la línea de comandos
Constantes Variables Tipos de datos Matrices
Algunas funciones útiles sobre las cadenas de caracteres, las fechas y los números
El operador de asignación por valor El operador de asignación por referencia
Los operadores aritméticos El operador de cadena Los operadores de comparación Los operadores lógicos El operador ternario Los operadores combinados Precedencia de los operadores Información general sobre PHP
Variables, constantes, tipos y matrices
Operadores
Estructuras de control Funciones y clases Gestión de formularios Acceder a las bases de datos Administrar las sesiones Enviar un correo electrónico Gestión de archivos
Administrar los errores en un script PHP Anexo
El operador de asignación por referencia
A partir de PHP 4, es posible relizar una asignación por referencia utilizando el operador &. Sintaxis
$variable2 = &$variable1;
Con esta sintaxis, el valor de la variable $variable1 no se copia en la variable $variable2. La variable $variable2 hace referencia a la variable $variable1; las dos variables apuntan a la misma zona de memoria y la modificación de una variable afecta a la otra.
Ejemplo <?php
// Inicialización de una variable. $apellido = ’Olivier’;
// Asignación en otra variable por referencia. $patronímico = &$apellido;
// Visualización del resultado. echo "<b>Inicialmente:</b><br />"; echo "\$apellido = $apellido<br />"; echo "\$patronímico = $patronímico<br />"; // Modificación de la primera variable. $apellido = ’Heurtel’;
// Visualización del resultado.
echo "<b>Después de la modificación de \$apellido:</b><br />"; echo "\$apellido = $apellido<br />";
echo "\$patronímico = $patronímico<br />"; ?>
Resultado Inicialmente: $apellido = Olivier $patronímico = Olivier
Después de la modificación de $apellido: $apellido = Heurtel
$patronímico = Heurtel
Subir
Condiciones generales de uso Copyright - ©Editions ENI
http://www.eni-training.com/client_net/mediabook.aspx?idR=85129 1/1
¿Qué es PHP?
Estructura básica de una página PHP Configuración de PHP
Utilizar PHP desde la línea de comandos
Constantes Variables Tipos de datos Matrices
Algunas funciones útiles sobre las cadenas de caracteres, las fechas y los números
El operador de asignación por valor El operador de asignación por referencia Los operadores aritméticos El operador de cadena Los operadores de comparación Los operadores lógicos El operador ternario Los operadores combinados Precedencia de los operadores Información general sobre PHP
Variables, constantes, tipos y matrices
Operadores
Estructuras de control Funciones y clases Gestión de formularios Acceder a las bases de datos Administrar las sesiones Enviar un correo electrónico Gestión de archivos
Administrar los errores en un script PHP Anexo
Operación Operador Ejemplo
($x=13 y $y=8)
Suma + echo $x + $y; => 21
Resta - echo $x - $y; => 5
Multiplicación * echo $x * $y; =>
104
División / echo $x / $y; =>
1.625 Módulo (resto de la división entera del
primer operando por el segundo) % echo $x % $y; => 5
Contrario - echo -$x; => -13
Preincremento (incrementa la variable
antes de devolver el valor de la variable) ++ antesdel operando
echo ++$x; => 14 Postincremento (incrementa la variable
después de haber devuelto el valor de la variable) ++ después del operando echo $x++; => 13 echo $x; => 14 Predecremento (decrementa la variable
antes de devolver el valor de la variable) -- antes deloperando echo --$x; => 12 Postdecremento (decrementa la variable
después de haber devuelto el valor de la variable) -- después del operando echo $x--; => 13 echo $x; => 12
Los operadores aritméticos
Los operadores aritméticos son los siguientes:
Subir
Condiciones generales de uso Copyright - ©Editions ENI
http://www.eni-training.com/client_net/mediabook.aspx?idR=85130 1/1
¿Qué es PHP?
Estructura básica de una página PHP Configuración de PHP
Utilizar PHP desde la línea de comandos
Constantes Variables Tipos de datos Matrices
Algunas funciones útiles sobre las cadenas de caracteres, las fechas y los números
El operador de asignación por valor El operador de asignación por referencia Los operadores aritméticos
El operador de cadena Los operadores de comparación Los operadores lógicos El operador ternario Los operadores combinados Precedencia de los operadores Información general sobre PHP
Variables, constantes, tipos y matrices
Operadores
Estructuras de control Funciones y clases Gestión de formularios Acceder a las bases de datos Administrar las sesiones Enviar un correo electrónico Gestión de archivos
Administrar los errores en un script PHP Anexo
El operador de cadena
El único operador de cadena es el operador de concatenación, igual que el punto (.). Sintaxis
cadena1.cadena2;
Esta sintaxis devuelve una cadena igual a la primera cadena inmediatamente seguida de la segunda; no se coloca ningún separador entre las dos cadenas.
Ejemplo <?php
// Utilización del operador de concatenación con // variables y expresiones literales.
$nombre = ’Olivier’; $apellido = ’Heurtel’;
echo $apellido.’, ’.$nombre.’<br />’; ?>
Resultado Heurtel, Olivier
Subir
Condiciones generales de uso Copyright - ©Editions ENI
http://www.eni-training.com/client_net/mediabook.aspx?idR=85131 1/1
¿Qué es PHP?
Estructura básica de una página PHP Configuración de PHP
Utilizar PHP desde la línea de comandos
Constantes Variables Tipos de datos Matrices
Algunas funciones útiles sobre las cadenas de caracteres, las fechas y los números
El operador de asignación por valor El operador de asignación por referencia Los operadores aritméticos
El operador de cadena
Los operadores de comparación Los operadores lógicos
El operador ternario Los operadores combinados Precedencia de los operadores Información general sobre PHP
Variables, constantes, tipos y matrices
Operadores
Estructuras de control Funciones y clases Gestión de formularios Acceder a las bases de datos Administrar las sesiones Enviar un correo electrónico