Revision: 69549
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 15, 2015 01:42 by COBOLdinosaur
Initial Code
class fileFormatter { public $map = array(); public $width = 0; public function setMap($inArray) { $this->map=$inArray; } public function setWidth ($inWidth) { $this->width=$inWidth; } public function centerHeading($str) { $pad=intval(($this->width-strlen($str))/2); $blank=' '; return str_pad($blank,$pad).$str.PHP_EOL; } public function formatLine($data) { $dataArray=explode(',',$data); $out=NULL; for($i=0;$i<count($dataArray);$i++) { $out.=str_pad($dataArray[$i],$this->map[$i]); } return $out.PHP_EOL; } Used in script this way: $report=new fileformatter(); $heading='Report Heading'; $lineWidth=70; $columns=array(10,11,15,15,19); $colHeadings='Source,Id Code,Location,Agent,Status'; $report->setWidth($lineWidth); $report->setMap($columns); $infile=fopen('infile.txt', 'r'); $outfile=fopen('outfile.txt', 'a'); fputs($outfile,$report->centerHeading($heading)); fputs($outfile,$report->formatLine($colHeadings)); while (!feof($infile)) { $line=trim(fgets($infile)); fputs($outfile,$report->formatLine($line)); } $dateLine=' ,Report Run: ' . date("Y-m-d H:i:s"); fputs($outfile,$report->formatLine($dateLine)); fclose( $infile ); fclose( $outfile );
Initial URL
http://coboldinosaur.com/pages/formatting-text-with-string-padding.html
Initial Description
This is a simple PHP class that can be used to produce nicely formatted reports from unorganized data.
Initial Title
Formatted Text Output using str_pad()
Initial Tags
php, text
Initial Language
PHP