У меня есть стандартные данные, подобные этим:
+------------+----------+-------+
| name | position | width |
+------------+----------+-------+
| REFERENCE | 20 | 9 |
| TRNSXN | 48 | 14 |
| ESTIM_DATE | 64 | 8 |
+------------+----------+-------+
3 rows in set (0.00 sec)
Моя цель - создать строку, в которой я могу определить положение и ширину каждого элемента, что-то вроде этого
ETL E7954 20181123
Как видите, первая строка REFERENCE
= "ETL"
;начинается с 20 и имеет максимум 9 символов.если оно меньше, оставьте пробел в остальном.
Тогда вторая строка будет TRNSXN
= E7954
;это начать с 48 и иметь максимум 14 символов, если его меньше, оставьте место для остальных.Так далее, так далее.
Пока это мой код:
private function preFormattedText($string, $width)
{
return str_pad($string, $width, " ", STR_PAD_RIGHT);
}
public function actionHermesAnsi($id)
{
$modelWestims =getDataAsAboveDescription ;
$stringWestim = null;
$stringWestim .= $this->preFormattedText('ETL', (int)$modelWestims[0]['width']);
$stringWestim .= $this->preFormattedText('E7954', (int)$modelWestims[1]['width']);
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=westim.txt");
print $stringWestim;
exit();
}
Я получил ETL E7954
Я не могу определить его положение.Пожалуйста, помогите.