tecnickcom/tc-lib-file

PHP library to read byte-level data from files

Maintainers

Package info

github.com/tecnickcom/tc-lib-file

Homepage

pkg:composer/tecnickcom/tc-lib-file

Statistics

Installs: 803 215

Dependents: 3

Suggesters: 0

Stars: 8

Open Issues: 0


README

PHP utilities for low-level file access and byte-level reading.

Latest Stable Version Build Coverage License Downloads

Donate via PayPal

If this library helps your parsing pipeline, please consider supporting development via PayPal.

Overview

tc-lib-file provides safe primitives for opening files, reading bytes, and handling binary-oriented workflows used by higher-level PDF and document libraries.

The package is intentionally small but critical: it centralizes low-level I/O concerns so higher-level libraries can focus on document semantics instead of stream safety and byte handling. This separation improves reliability, testability, and reuse across the broader Tecnick ecosystem.

Namespace \Com\Tecnick\File
Author Nicola Asuni info@tecnick.com
License GNU LGPL v3 - see LICENSE
API docs https://tcpdf.org/docs/srcdoc/tc-lib-file
Packagist https://packagist.org/packages/tecnickcom/tc-lib-file

Features

File Access

  • Local and URL-backed file reading helpers
  • Path-safety checks for local operations
  • cURL-based retrieval options for remote resources

Binary Utilities

  • Byte, integer, and structured binary reads
  • Helpers used by parser and image/font import stacks
  • Error handling via typed exceptions

Requirements

  • PHP 8.1 or later
  • Extensions: curl, pcre
  • Composer

Installation

composer require tecnickcom/tc-lib-file

Quick Start

<?php

require_once __DIR__ . '/vendor/autoload.php';

$file = new \Com\Tecnick\File\File();
$fh = $file->fopenLocal(__FILE__, 'rb');
$header = $file->fReadInt($fh);

var_dump($header);

Development

make deps
make help
make qa

Packaging

make rpm
make deb

For system packages, bootstrap with:

require_once '/usr/share/php/Com/Tecnick/File/autoload.php';

Contributing

Contributions are welcome. Please review CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md.

Contact

Nicola Asuni - info@tecnick.com