sscanf

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

sscanfAnaliza una cadena utilizando un formato

Descripción

sscanf(string $string, string $format, mixed &...$vars): array|int|null

sscanf() es la función inversa de printf(). sscanf() lee datos de la cadena string e los interpreta según el formato format.

Todos los caracteres en blanco en la cadena format corresponden a un carácter en blanco en la cadena string. Esto significa que incluso una tabulación (\t) en la cadena de formato puede corresponder a un simple espacio en la cadena str.

Parámetros

string

La cadena a analizar.

format

The interpreted format for string, which is described in the documentation for sprintf() with following differences:

  • Function is not locale-aware.
  • F, g, G and b are not supported.
  • D stands for decimal number.
  • i stands for integer with base detection.
  • n stands for number of characters processed so far.
  • s stops reading at any whitespace character.
  • * instead of argnum$ suppresses the assignment of this conversion specification.

vars

Opcionalmente, se pueden pasar variables en este parámetro, por referencia que contendrán los valores del análisis.

Valores devueltos

Si solo se proporcionan dos parámetros, los valores encontrados se devolverán como un array. De lo contrario, si se proporcionan los parámetros opcionales, la función devolverá el número de valores asignados. El parámetro opcional debe pasarse por referencia.

Si hay más subcadenas esperadas en el parámetro format que las disponibles en string, entonces null será devuelto.

Ejemplos

Ejemplo #1 Ejemplo con sscanf()

<?php
// Lectura de un número de serie
list($serial) = sscanf("SN/2350001", "SN/%d");
// y la fecha de fabricación
$mandate = "January 01 2000";
list(
$month, $day, $year) = sscanf($mandate, "%s %d %d");
echo
"El producto $serial fue fabricado el: $year-" . substr($month, 0, 3) . "-$day\n";
?>

Si se pasan parámetros opcionales, sscanf() devolverá el número de valores asignados.

Ejemplo #2 sscanf() - uso de parámetros opcionales

<?php
// lee la información del autor y genera una 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

  • printf() - Muestra una string formateada
  • sprintf() - Devuelve una string formateada
  • fprintf() - Escribe una cadena formateada en un flujo
  • vprintf() - Muestra una string formateada
  • vsprintf() - Devuelve una string formateada
  • vfprintf() - Escribe una cadena formateada en un flujo
  • fscanf() - Analiza un archivo según un formato
  • number_format() - Formatea un número para su visualización
  • date() - Da formato a una marca de tiempo de Unix (Unix timestamp)