2017 © Pedro Peláez
 

library encode-file

Encode a file.

image

jstewmc/encode-file

Encode a file.

  • Tuesday, September 6, 2016
  • by Jstewmc
  • Repository
  • 1 Watchers
  • 0 Stars
  • 7 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 17 % Grown

The README.md

encode-file

Encode a file., (*1)

use Jstewmc\EncodeFile\Encode;

// set the filename
$filename = '/path/to/foo.txt';

// create an ASCII encoded string
$contents = mb_convert_encoding('foo', 'ASCII');

// put the contents into the file
file_put_contents($filename, $contents);

// is the file UTF-32 encoded?
mb_check_encoding(file_get_contents($filename), 'UTF-32');  // returns false

// create the service
// keep in mind, you'll need to implement the Read and Write interfaces
//
$service = new Encode(new Read(), new Write());

// convert the file to UTF-32
$service($filename, 'UTF-32');

// is the file UTF-32 encoded?
mb_check_encoding(file_get_contents($filename), 'UTF-32');  // returns true

PHP Extensions

This library requires PHP's non-default mbstring extension. If the service is instantiated without the mbstring extension loaded, a BadMethodCallException will be thrown., (*2)

Dependencies

This library depends on (and provides) two interfaces for a read-file service and a write-file service. The former must implement a __invoke(string $filename): string method, and the latter must implement a __invoke(string $filename, string $contents): int method., (*3)

The read-file and write-file interfaces MAY be implemented by the jstewmc/read-file and jstewmc/write-file libraries, respectively. For example, in your application, extend Jstewmc\ReadFile\Read and implement Jstewmc\EncodeFile\Read:, (*4)

namespace My\App;

use Jstewmc\EncodeFile\Read as ReadInterface;
use Jstewmc\ReadFile\Read as ReadParent;

class Read extends ReadParent implements ReadInterface
{
    // nothing yet   
}

From encoding

Keep in mind, it's difficult to detect a string's character encoding. Even PHP's mb_detect_encoding() function is not perfect. For example, mb_detect_encoding() will almost never detect Windows-1252 encoding, even if the string actually is Windows-1252 encoded (see Bug #64667 for details)., (*5)

To prevent erroneously detecting the file's from encoding, you MAY include it as the service's third argument. If the "from" encoding is not given, the library will attempt to detect it., (*6)

use Jstewmc\EncodeFile\Encode;

$service = new Encode(new Read(), new Write());

// encode file as UTF-8 from Windows-1252
$service('/path/to/file.txt', 'UTF-8', 'Windows-1252');

Author

Jack Clayton, (*7)

License

MIT, (*8)

Version

0.3.0, September 6, 2016

0.2.0, August 31, 2016

0.1.0, August 27, 2016

  • Initial release

The Versions

06/09 2016

dev-master

9999999-dev

Encode a file.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Jack Clayton

file php encode jstewmc

01/09 2016

v0.2.0

0.2.0.0

Encode a file.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jack Clayton

file php encode jstewmc

27/08 2016

v0.1.0

0.1.0.0

Convert a file's character encoding

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Jack Clayton

file php convert encoding jstewmc