Функция sscanf в PHP
В предыдущей статье мы разобрали функции форматного вывода. Так вот, имеется и обратная функция, которая называется sscanf(). И именно о функции sscanf() в PHP я сейчас и расскажу.
Эта функция, как я уже писал, полная противоположность функциям printf() и sprintf(). У функции sprintf() 2 обязательных аргумента:
- $str - строка, которую необходимо обработать.
- $format - строка с форматом. Этот формат абсолютно идентичен формату в функции printf().
Если указывать дополнительные параметры, то все полученные значения будут помещены в эти переданные переменные. Если их не указывать, то будет возвращён массив.
Давайте разберём пример из предыдущей статьи, но дополнив его и обратными действиями:
<?php
$year = 2012;
$month = 9;
$str = sprintf("Дата написания статьи: %02d.%02d.%04d", $day, $month, $year);
$array = sscanf($str, "Дата написания статьи: %02d.%02d.%04d");
print_r($array);
sscanf($str, "Дата написания статьи: %02d.%02d.%04d", $day, $month, $year);
echo "<br />$day.$month.$year";
?>
В данном примере мы сначала получили строку $str, согласно требуемому формату. Дальше мы, используя функцию sscanf(), получили обратно все значения переменных в виде массива. А после мы вызвали эту же функцию sscanf(), но с дополнительными аргументами, названиями переменных, в которые нам требовалось поместить значения. Затем мы полученные значения также вывели.
В принципе, данную задачу можно было бы легко решить с помощью регулярных выражений, поэтому ценность данной функции не так невелика, как, например, printf(), но иногда в разы короче и проще будет использовать именно функцию sscanf(), чем регулярные выражения. И пример в этой статье является одним из таких случаев.
-
- Михаил Русаков
Комментарии (2):
Михаил посоветуй хорошую литературу, по личному опыту. Только честно, какая лично тебе понравилась. И ещё один важный вопрос. Много ли ты уделяешь времени на изучение веб-программирования в день ( хотя бы среднее значение). Ответь пожалуйста!
Ответить
В статье ошибка: у функции sprintf 2 обязательных параметра... Статья ведь про функцию sscanf. Вот и надо - у функции sscanf...
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.