spekulatius / php-char-combinator
An extentable, dynamic character-list generator for PHP.
Fund package maintenance!
spekulatius
www.buymeacoffee.com/spekulatius
Requires
- php: ^8.2.0
Requires (Dev)
- laravel/pint: ^1.10.1
- pestphp/pest: ^2.6.3
- phpstan/phpstan: ^1.10
- rector/rector: ^0.15.25
- symfony/var-dumper: ^6.3.0
This package is auto-updated.
Last update: 2024-11-28 20:55:26 UTC
README
The PHP Char Combinator is a utility class that provides methods to generate arrays of character combinations based on specified criteria.
WARNING:
- This package is not intended to be deployed in any web-projects. It's a tool for testing - not production. No warrenty for any damage!
- This will generate a lot of combinations, make sure your are ready to handle the volume. You probably will need to adjust your
php.ini
Features
- Generate arrays of character combinations within a specified length range.
- Generate an array of ASCII characters or non-alphanumeric ASCII characters.
- Recursive combination generation algorithm for generating all possible combinations.
Usage
Installation
composer require spekulatius/php-char-combinator
Basic Usage
Here's a basic example of how you can use the Combinator
class to generate combinations of characters:
use Spekulatius\PHPCharCombinator\Combinator; $combinator = new Combinator(); // Generate combinations of lengths 1 to 3 using ASCII characters $asciiChars = $combinator->prepareAsciiChars(); $combinations = $combinator->generateCombinations($asciiChars, 1, 3); foreach ($combinations as $combination) { echo $combination . "\n"; }
Additional Methods
The Combinator
class provides two additional methods:
prepareAsciiChars()
This method generates an array of all ASCII characters.
$asciiChars = $combinator->prepareAsciiChars();
prepareNonAlphanumericAsciiChars()
This method generates an array of non-alphanumeric ASCII characters.
$nonAlphanumericChars = $combinator->prepareNonAlphanumericAsciiChars();
Contributing
Feel free to contribute by opening issues or pull requests on GitHub.
License
This project is open-source and available under the MIT License.