1tomany / data-uri
A simple, low dependency library to parse and decode data URIs defined in RFC 2397
Installs: 447
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
pkg:composer/1tomany/data-uri
Requires
- php: >=8.4
- ext-ctype: *
- ext-fileinfo: *
- symfony/filesystem: ^7.2|^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- mikey179/vfsstream: ^1.6
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^12.5
- dev-main
- v6.0.2
- v6.0.1
- v6.0.0
- v5.0.5
- v5.0.4
- v5.0.3
- v5.0.2
- v5.0.1
- v5.0.0
- v4.5.1
- v4.5.0
- v4.4.5
- v4.4.4
- v4.4.3
- v4.4.2
- v4.4.1
- v4.4.0
- v4.3.0
- v4.2.2
- v4.2.1
- v4.2.0
- v4.1.1
- v4.1.0
- v4.0.0
- v3.0.0
- v2.6.0
- v2.5.0
- v2.4.1
- v2.4.0
- v2.3.1
- v2.3.0
- v2.2.0
- v2.1.0
- v2.0.0
- v1.6.0
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.0
- v1.3.1
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.0
- dev-uri-47
- dev-uri-43
- dev-uri-43-data_decoder
This package is auto-updated.
Last update: 2026-01-28 19:26:18 UTC
README
This simple library allows you to easily convert a wide variety of data into a temporary file represented by a lightweight immutable value object.
Installation
composer require 1tomany/data-uri
API Overview
The three methods exposed by this library are:
OneToMany\DataUri\DataDecoder::decode()OneToMany\DataUri\DataDecoder::decodeBase64()OneToMany\DataUri\DataDecoder::decodeText()
Each method returns an object that implements the OneToMany\DataUri\Contract\Record\DataUriInterface interface. In this implementation, the value object will automatically delete the file it represents when it is destructed or garbage collected.
The DataDecoder::decode() method is the most versatile as it allows for a wide variety of inputs:
- A data URI defined in RFC2397
- A public HTTP or HTTPS URL
- A readable file
DataDecoder::decode()
The DataDecoder::decode() method has the following parameters:
mixed $dataThe data to decode?string $nameThe display name for the temporary file. This is useful for handling file uploads where the original filename is preferred over the random name PHP assigns. A randomly generated name will be used if this is empty and a name cannot be resolved. This isnullby default.
Inside DataDecoder::decode()
Under the hood, DataDecoder::decode() uses the fopen() and stream_get_contents() functions, which means the data passed to it can be any stream that PHP supports.
DataDecoder::decodeBase64()
This method is to be used when the data is known to be base64 encoded but NOT encoded as a data URI.
The DataDecoder::decodeBase64() method has the following parameters:
string $dataThe base64 encoded stringstring $formatThe format of the data represented as a MIME type?string $nameSeeDataDecoder::decode()
DataDecoder::decodeText()
This method is to be used when the data is known to be plaintext.
The DataDecoder::decodeText() method has the following arguments:
string $textThe plaintext string?string $nameSeeDataDecoder::decode(). The extension.txtwill be appended to the$nameif the value provided does not already use it.
Examples
See the parse_example.php file for examples on how to use the DataDecoder::decode() method.
Credits
License
The MIT License