Функция sscanf() в PHP

Пример

Анализ строки:

<?php
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
// Показать тип и значение
var_dump($age,$weight);
?>

Запуск примера

Определение и использование

Функция sscanf() интерпретирует ввод из строки по указанному формату. Функция sscanf() интерпретирует строку по указанному формату и сохраняет результат в переменные.

Если передается только два параметра, данные возвращаются в виде массива. В противном случае, если передается дополнительные параметры, интерпретированные данные хранятся в этих параметрах. Если количество делимых больше, чем количество переменных, содержащих их, происходит ошибка. Однако, если количество делимых меньше, чем количество переменных, дополнительные переменные содержат NULL.

См. также функции:

  • printf() - Вывести отформатированную строку
  • sprintf() - Записать отформатированную строку в переменную

Грамматика

sscanf(string,format,arg1,arg2,arg++)
Параметр Описание
string Обязателен. Определяет строку, которую нужно прочитать.
format

Обязателен. Определяет формат, который будет использоваться.

Возможные значения формата:

  • %% - возвращает символ процента (%)
  • %c - символ, соответствующий значению ASCII
  • %d - десятичное число с знаком (+/-) (отрицательное, 0, положительное)
  • %e - научная форма с нижними символами (например, 1.2e+2)
  • 袍есятичное число без знака (+) (не менее 0)
  • %f - числовая форма с плавающей запятой
  • %o - восьмеричное число
  • %s - строка
  • %x - шестнадцатеричное число (нижние символы)
  • %X - шестнадцатеричное число (большие буквы)

Дополнительные значения формата. Необходимо размещать между % и буквой (например, %.2f):

  • + (добавляет + или - перед числом для определения знака числа. По умолчанию, только отрицательные числа помечены, положительные числа не помечены)
  • ' (определяет, что использовать в качестве заполнителя, по умолчанию это пробел. Он должен использоваться вместе с указателем ширины.)
  • - (левая настройка значения переменной)
  • .[0-9] (определяет минимальную ширину значения переменной)
  • .[0-9] (определяет количество знаков после запятой или максимальную длину строки)

Комментарий:Если используются несколько указанных значений формата, они должны использоваться в порядке, указанном выше.

arg1 Опционально. Первая переменная для хранения данных.
arg2 Опционально. Вторая переменная для хранения данных.
arg++ Опционально. Третья и четвертая переменные для хранения данных, и так далее.

Технические детали

Возврат значений: Если передается только два параметра функции, данные возвращаются в виде массива. В противном случае, если передается дополнительные параметры, то обработанные данные хранятся в этих параметрах. Если количество разделителей превышает количество переменных, содержащих их, возникает ошибка. Однако, если количество разделителей меньше, чем количество переменных, дополнительные переменные содержат NULL.
Версия PHP: 4.0.1+

Более примеров

Пример 1

Использование значений формата %s, %d и %c:

<?php
$str = "If you divide 4 by 2 you'll get 2";
$format = sscanf($str,"%s %s %s %d %s %d %s %s %c");
print_r($format);
?>

Запуск примера