ali-eltaweel/expandr
最新稳定版本:1.0.1
Composer 安装命令:
composer require ali-eltaweel/expandr
包简介
Shell-style Parameters Expansion
README 文档
README
Shell-style Parameters Expansion
Installation
composer require ali-eltaweel/expandr
Usage
$expandr = new Expandr\Expandr([ 'name' => 'User' ]); echo $expandr->processLine('Hello ${name}'); // Hello User
Substitution
$expandr = new Expandr\Expandr([ 'x' => 'x_x_x' ]); echo $expandr->processLine('${x/x/|}'); // |_x_x (replace first) echo $expandr->processLine('${x//x/|}'); // |_|_| (replace all)
Slicing
$expandr = new Expandr\Expandr([ 'chars' => 'abcdefgh' ]); echo $expandr->processLine('${chars:0:4}'); // abcd echo $expandr->processLine('${chars:2}'); // cdefgh echo $expandr->processLine('${chars:-2}'); // gh
Right Trim
$expandr = new Expandr\Expandr([ 'path' => 'path/to/file.php' ]); echo $expandr->processLine('Filename: ${path%.php}'); // Filename: path/to/file
Left Trim
$expandr = new Expandr\Expandr([ 'path' => 'path/to/file.php' ]); echo $expandr->processLine('Filename: ${path##path/to/}'); // Filename: file.php
Case Transformation
$expandr = new Expandr\Expandr([ 'username' => 'user', 'USERNAME' => 'USER', ]); echo $expandr->processLine('Hello ${username^}'); // Hello User echo $expandr->processLine('Hello ${username^^}'); // Hello USER echo $expandr->processLine('Hello ${USERNAME,}'); // Hello uSER echo $expandr->processLine('Hello ${USERNAME,,}'); // Hello user
Indirection
$expandr = new Expandr\Expandr([ 'a' => 'b', 'b' => 'c', 'c' => 'd' ]); echo $expandr->processLine('${a}'); // b echo $expandr->processLine('${!a}'); // c echo $expandr->processLine('${!!a}'); // d // and so on...
Default
$expandr = new Expandr\Expandr([ 'a' => 'b' ]); echo $expandr->processLine('${a:+a is set}'), // a is set echo $expandr->processLine('${b:-b is not set}'), // b is not set echo $expandr->processLine('${b:?b is not set}'), // throws an error with message "b is not set"
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2026-02-28