sscanf
(PHP 4 >= 4.0.1, PHP 5)
sscanf — Interpreta un string de entrada de acuerdo con un formato
Descripción
La función sscanf() es la entrada análoga de
printf(). sscanf() lee
del string str y lo interpreta
de acuerdo con el format especificado, el cual está
descrito en la documentación para sprintf().
Cualquier espacio en blanco en el string de formato coincide con cualquier espacio en blanco en string de entrada. Esto significa que incluso un tabulador \t en el string de formato puede coincidir con un caracter simple de espacio en el string de entrada.
Parámetros
-
str -
El string de entrada para ser interpretado.
-
format -
El formato interpretado
str, el cual está descrito en la documentación para sprintf() con las siguientes diferencia:- La función no es consciente de la configuración regional.
- F, g, G y b no están soportados.
- D representa número decimal.
- i representa integer con detección de base.
- n representa el número de caracteres procesados hasta el momento.
-
... -
Opcionalmente variables pasadas por referencia que contendrán los valores interpretados.
Valores devueltos
Si sólo se pasan dos parámetros a esta función, los valores interpretados se devolverán como una matriz. De lo contrario, si se pasan parámetros opcionales, la función devolverá el número de valores asignados. Los parámetros opcionales se deben pasar por referencia.
Si hay más substrings esperados en el format
que los que hay disponibles en str,
será devuelto -1.
Ejemplos
Ejemplo #1 Ejemplo de sscanf()
<?php
// obtener el número serial
list($serial) = sscanf("SN/2350001", "SN/%d");
// y la fecha de manufactura
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Item $serial was manufactured on: $year-" . substr($month, 0, 3) . "-$day\n";
?>
Si se pasan parámetros opcionales, la función devolverá el número de valores asignados.
Ejemplo #2 sscanf() - using optional parameters
<?php
// obtener la información del autor y generar entrada DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
<firstname>$first</firstname>
<surname>$last</surname>
</author>\n";
?>