sscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

sscanfInterpreta un string de entrada de acuerdo con un formato

Descripción

sscanf ( string $str , string $format [, mixed &$... ] ) : mixed

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($month03) . "-$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"
;
?>

Ver también

  • fscanf() - Analiza la entrada desde un archivo de acuerdo a un formato
  • printf() - Imprimir una cadena con formato
  • sprintf() - Devuelve un string formateado