battye/php-array-parser

Parse text representation of a PHP array into an actual PHP array.

v1.0.10 2021-11-18 04:29 UTC

This package is not auto-updated.

Last update: 2024-04-18 16:12:44 UTC


README

A small library to parse text representations of a PHP array and return an actual PHP array.

Installation

Run composer install to run this script (and tests) in a standalone way. Alternatively, this can be used as a dependency in another project by running composer require battye/php-array-parser "~1.0".

Reference the namespace at the top of your PHP files to utilise the included classes:

use battye\array_parser\parser;
use battye\array_parser\tokens;

If you notice any bugs, please raise an issue or pull request.

Example

In both of the following examples, $result would contain a PHP array containing the representation of the string or text file provided.

Raw String

To parse a simple array is very easy:

$value = "array(0 => array('one' => 1, 'two' => 'two'));";
$result = parser::parse_simple($value);

In this case, $result would produce the following:

array(1) {
  [0] =>
  array(2) {
    'one' =>
    int(1)
    'two' =>
    string(3) "two"
  }
}

Regex

Regular expressions can also be used to parse complex files and extract array values:

$regex = '/\$lang\s+=\s+array_merge\(\$lang, array\((.*?)\)\);/s';
$file = __DIR__ . '/files/test_lang.php';
$result = parser::parse_regex($regex, $file);

Tests

Latest Stable Version Total Downloads GitHub Actions CI

The unit tests provide good examples of how to utilise this library and can be found in the tests/ directory. To execute the unit tests, run:

vendor/bin/simple-phpunit tests/