PHP эквивалентный функции формата Perl - PullRequest
3 голосов
/ 05 апреля 2010

Есть ли эквивалентная функция формата Perl в PHP? У меня есть клиент, у которого старый точечный матричный принтер okidata, и мне нужен хороший способ форматировать квитанции и счета с помощью этого загадочного зверя.

Я помню, как легко делал это в Perl с чем-то вроде:

format BILLFORMAT = 
Name: @>>>>>>>>>>>>>>>>>>>>>>    Age: @###
      $name,                          $age
.
write;

Любые идеи будут высоко цениться, ударяя меня головой об стену этим. O.o

ОБНОВЛЕНИЕ: я не могу установить Perl в этой среде, иначе я бы просто использовал функцию форматирования Perl напрямую.

Ответы [ 3 ]

3 голосов
/ 05 апреля 2010

Вы можете использовать printf, чтобы сделать что-то подобное.

http://www.php.net/manual/en/function.printf.php

printf("Name: %21s     Age: %3i\n",$name,$age);

Если вы хотите, чтобы имя было выровнено по левому краю, просто добавьте -

printf("Name: %-21s     Age: %3i\n",$name,$age);

По умолчанию выровнено по правому краю.

0 голосов
/ 05 апреля 2010

Звучит как идеальная ситуация для использования heredoc .

0 голосов
/ 05 апреля 2010

Если вы не против использовать процесс Perl для управления принтером, вы можете сериализовать данные в PHP и передать их сценарию Perl.

Мне очень повезло, используя PHP :: Serialization для обработки сериализации данных и обмена между Perl и PHP. Вы также можете использовать YAML или JSON для этой задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...