[Image] Воскресенье, 28.04.2024, 21:36 [Image]
SEO, технологии, игры, IT новости
[Image] Главная Регистрация Вход [Image]
[Image] Приветствую Вас, Гость · RSS [Image]
Меню сайта

Форма входа
Логин:
Пароль:
 Блог
Главная » 2010 » Декабрь » 18 » Форматирование строк
20:00
Форматирование строк
Если для компьютера строки — это не более чем коллекция символов, то для человека они часто представляют концепции и данные, которые должны следовать определенным соглашениям. И даже когда вы имеете дело с компьютерами, все равно иногда необходимо гарантировать, чтобы содержимое строк следовало определенным правилам. Например, строки, которые должны быть переданы Web-браузеру, должны форматироваться в соответствии со стандартами HTML, чтобы они могли корректно отображаться.
В РНР представлен широкий спектр функций, которые могут применяться для форматирования строк во многих случаях. Возможно, наиболее общим примером этой функциональности является функция printf (), синтаксис которой показан ниже:
void printf ($format specification[, $parameters...]);
Параметр $format_specification — это строка, которая содержит как нормальный текст, выводимый "как есть", так и директивы подстановки, которые заменяются с использованием значений, представленных в части $parameters вызова функции.
Директива подстановки имеет следующую форму:
%[Р] [-]W[.R]T
Т— это тип параметра (см. табл. 1.4), W— минимальная длина, которую должны занимать данные в выходной строке, Р — необязательный символ-заполнитель, который должен использоваться для обеспечения того, чтобы данные занимали минимум W символов.
Таблица 1.4. Спецификаторы типа функции p r i n t f ()
Опция Значение
% Литеральный символ процента.
а Целое, представленное как двоичное число (например: 101110111).
с Целое, представленное как символ с соответствующим ASCII-кодом.
d Целое, представленное как целое число со знаком.
и Целое, представленное как целое число без знака.
f Значение с плавающей точкой.
о Целое, представленное как восьмеричное число.
s Строковое значение.
х Целое, представленное в шестнадцатеричной нотации (с символами в нижнем регистре).
X Целое, представленное в шестнадцатеричной нотации (с символами в верхнем регистре).
R — это необязательный символ точности, который имеет смысл только в случае
значений с плавающей точкой; он указывает число десятичных разрядов, которые должны быть использованы для представления данных.
Наконец, тире (-), расположенное между Р и И, означает, что данные должны быть выровнены влево в пределах ширины поля, заданной W.
Все это выглядит намного сложнее, чем есть на самом деле. Давайте рассмотрим несколько примеров:
%-5d
Эта конструкция представляет выровненное вправо целое значение, которое
должно быть как минимум в 5 знаков длиной.
 %05.3f
Эта конструкция представляет значение с плавающей точкой, как минимум пяти знаков длиной и не менее 3 десятичных разрядов после запятой. Символ 0 используется для заполнения строк до минимальной длины. Ниже показан пример.
<?php
$п = 15.32;
$log = log ($n);
printf ("log (%0.2f) = %.5f\n", $n, $log);
<?php
Сценарий выдает следующую строку: log (15 . 32) = 2 .72916. Для тех из вас, кто имеет опыт программирования на языке С, следует отметить, что printf () не представляет никаких подстановок для управляющих символов с обратным слэшем, таких как \п. Если вы хотите использовать такие специальные символы, убедитесь, что вы указали значение параметра format_specification с применением синтаксиса с двойными кавычками. Если директивы в нем будут найдены, интерпретатор будет проходить от одного параметра к другому до тех пор, пока не выполнит все подстановки.
К сожалению, такой подход может служить причиной некоторых серьезных проблем. Например, рассмотрим случай применения printf () в качестве основы в системе, поддерживающей несколько языков. Предложение на английском:
"The [box/case] contains [three/five] pens"
может быть переведено на другой язык с применением другой конструкции, например:
"There are [three/five] pens in the [box/case]"
Понятно, что использование printf О для того, чтобы сделать локализованную систему настолько гибкой, чтобы она могла поддерживать конструктивные формы разных языков, может оказаться сложным без возможности указания, какой параметр должен применяться для каждой директивы подстановки.
К счастью РНР позволяет это сделать за счет использования слегка измененного синтаксиса. Все, что вам нужно сделать — это предварительно указать в директиве номер параметра с последующим символом доллара ($). Например:
<?php
function replace_me ($s)
printf ($s, 10, 'box');
replace_me ("There are %d pens in the %s\n");
replacejne ("The %2\$s contains %l\$s pens\n");
<?php
Этот сценарий возвращает корректное значение несмотря на то, что порядок параметров во второй строке меняется (обратите внимание, что символ доллара указан с обратным слэшем, чтобы гарантировать, что он не будет обработан механизмом объявления строк РНР):
There are 10 pens in the box.
The box contains 10 pens.
Функция s p r i n t f () принимает те же параметры, что и p r i n t f (), но возвращает строку, которая является результатом ее выполнения:
$а = printf ("%d cases of wine\n", 10);

Категория: Все о PHP | Просмотров: 963 | Добавил: witkom8382 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024
Категории
Оптимизация сайта [589]
Создание сайтов [355]
Заработать в интернете [505]
Технологии [44]
Полезное [368]
Услуги и сервисы [308]
Автоблог [100]
Скрипты для Ucoz [39]
Движок на сайт [10]
Все о Joomla и Drupal [20]
Все о PHP [91]
Поиск
Пользовательский поиск
Статистика


Онлайн всего: 8
Гостей: 7
Пользователей: 1
AcerJeks
Seo сайт, технологии продвижения, мета теги, оптимизация сайтов, новости сео, Скрипты, Ucoz

Рейтинг@Mail.ru