Функция sscanf() в PHP
Пример
Анализ строки:
<?php $str = "age:30 weight:60kg"; sscanf($str,"age:%d weight:%dkg",$age,$weight); // Показать тип и значение var_dump($age,$weight); ?>
Определение и использование
Функция sscanf() интерпретирует ввод из строки по указанному формату. Функция sscanf() интерпретирует строку по указанному формату и сохраняет результат в переменные.
Если передается только два параметра, данные возвращаются в виде массива. В противном случае, если передается дополнительные параметры, интерпретированные данные хранятся в этих параметрах. Если количество делимых больше, чем количество переменных, содержащих их, происходит ошибка. Однако, если количество делимых меньше, чем количество переменных, дополнительные переменные содержат NULL.
См. также функции:
Грамматика
sscanf(string,format,arg1,arg2,arg++)
Параметр | Описание |
---|---|
string | Обязателен. Определяет строку, которую нужно прочитать. |
format |
Обязателен. Определяет формат, который будет использоваться. Возможные значения формата:
Дополнительные значения формата. Необходимо размещать между % и буквой (например, %.2f):
Комментарий:Если используются несколько указанных значений формата, они должны использоваться в порядке, указанном выше. |
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); ?>