1. Go to this page and download the library: Download giftcards/fixed-width library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
giftcards / fixed-width example snippets
use Giftcards\FixedWidth\File;
use Giftcards\FixedWidth\Line;
$file = new File(
'name' /* the name of the file e separator defaults to \r\n */
);
$line1 = $file->newLine(); //this instantiates a new line and adds it to the file
//then returns it to be edited
$line1[2] = 'w'; //the line class follows ArrayAccess so can be used as an array to set chars
$line1['2:3'] = 'w'; //the index can also be a string with 2 numbers separated by
//a colon to denote a range this is the equivalent range to the above
//index it set the value from and including index a until and excluding
//index b
//you can also get a value using an index or range.
//you can also pass an instance of Slice which is what it is converted
//to internally
var_dump('w' == $line[new Slice(2, 3)]);//this will be true
$line1['3:5'] = 'er';//so index 3 and 4 will be set with this value.
$line2 = new Line($file->getWidth()); //you can also create a line
$file[] = $line2; //and add it to the file. it follows ArrayAccess as well
//you can also use addLine for the same effect
$file[1] = $line2; //this has the same effect and setLine(1, $line2) can be used as well
unset($file[0]); //this removes the line at that index and reindex's the lines
//so $file[0] === $line2
$line2['0:5'] = 'hello';
$line2['6:11'] = 'world'; //$line2 now says 'hello world '
echo $line2; //the Line class has a __toString method so this will print out the contents
$file[] = $line1;
echo $file; //this will echo out the whole file line by line separated by the line
use Giftcards\FixedWidth\Spec\FileFactory;
use Giftcards\FixedWidth\Spec\Loader\YamlSpecLoader;
use Symfony\Component\Config\FileLocator;
$factory = new FileFactory(new YamlSpecLoader(new FileLocator(__DIR__.'/Tests/Fixtures/')));
//instantiate a builder
$builder = $factory->createBuilder('fileName', 'spec1');
$builder
->addRecord('record1', array(
//field1 isnt
use Giftcards\FixedWidth\Spec\FileFactory;
use Giftcards\FixedWidth\Spec\Loader\YamlSpecLoader;
use Symfony\Component\Config\FileLocator;
$file = new \SplFileInfo('path');
$factory = new FileFactory(new YamlSpecLoader(new FileLocator(__DIR__.'/Tests/Fixtures/')));
$reader = $factory->createReader($factory->createFromFile($file), 'spec1');
$field1 = $reader->parseField(
0 /* index of the line you want to read */,
'field1' /* name of the field you want to read */,
'record1' /* record spec name to use */
);
var_dump($field1); //output will be double(23.34)
$record = $reader->parseLine(0, 'record1');
var_dump($record); //output will be
/*
array(2) {
'field1' =>
double(23.34)
'field2' =>
string(2) "go"
}
*/
$factory->addRecordSpecRecognizer('spec1', $recognizer);
//now when you read a file using spec1 the recognizer will be used if no record
//spec name is passed as the last arg to parseField and parseLine
use Giftcards\FixedWidth\Spec\FileFactory;
$factory = new FileFactory($specLoader, $customValueFormatter);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.