PHP sscanf()Функции

PHP String 参考手册Справочное руководство по строкам 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++)

Parameters Описание
string Обязательный. Задает строку для чтения.
format Обязательный. Задает используемый формат.

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

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

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

  • + (Добавляет + или - перед числом, чтобы определить знак. По умолчанию отмечаются только отрицательные числа, положительные — нет)
  • ' (Указывает, что использовать в качестве заполнителя, по умолчанию — пробел. Это должно использоваться со спецификатором ширины. Например: %'x20s (использование "x" в качестве заполнителя))
  • - (Выравнивает значение переменной по левому краю)
  • [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);
?>

Запустить пример »


PHP String 参考手册Справочное руководство по строкам PHP Другие расширения