Вам необходимо отформатировать данные так, чтобы каждое поле имело фиксированную ширину.
Это можно сделать с помощью функции pack()
, которая позволяет форматировать строки с добавлением серии пробелов перед и после строки. Пример 1-31 показывает, как преобразовать элементы массива в набор данных фиксированной ширины.
Пример 1-31:
$books = array( array('Elmer Gantry', 'Sinclair Lewis', 1927),
array('The Scarlatti Inheritance','Robert Ludlum', 1971),
array('The Parsifal Mosaic','William Styron', 1979) );
foreach ($books as $book) {
print pack('A25A15A4', $book[0], $book[1], $book[2]) . "\n";
}
Форматирующая строка A25A15A4
сообщает функции pack()
, что для следующих параметров нужно оставить 25 байт пространства, 15 байт и 4 байта соответственно. Таким образом, функция pack()
предоставляет эффективное решение для создания полей фиксированной ширины с пробелами.
Если вы хотите заполнить поля после строк другими символами вместо пробелов, вам нужно использовать функцию substr()
, чтобы убедиться, что заполняемая строка не слишком длинная, и функцию str_pad()
, чтобы гарантировать, что строка не будет слишком короткой. В примере 1-32 показано, как заполнить недостающие байты точками.
Пример 1-32:
$books = array( array('Elmer Gantry', 'Sinclair Lewis', 1927),
array('The Scarlatti Inheritance','Robert Ludlum', 1971),
array('The Parsifal Mosaic','William Styron', 1979) );
foreach ($books as $book) {
$title = str_pad(substr($book[0], 0, 25), 25, '.');
$author = str_pad(substr($book[1], 0, 15), 15, '.');
$year = str_pad(substr($book[2], 0, 4), 4, '.');
print "$title$author$year\n";
}
Справочное руководство по функции pack()
: http://php.net/manual/zh/function.pack.php
Справочное руководство по функции str_pad()
: http://php.net/manual/zh/function.str-pad.php
В разделе 1.17 подробно обсуждается, как функция pack()
форматирует данные.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )