(PHP 4 >= 4.0.1, PHP 5, PHP 7)
sscanf — Interpreta un string de entrada de acuerdo con un formato
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.
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:
...
Opcionalmente variables pasadas por referencia que contendrán los valores interpretados.
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.
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";
?>