lastguest/dynamic-string

基于模板的随机字符串生成器

1.0.0 2015-01-13 23:23 UTC

This package is auto-updated.

Last update: 2024-09-16 20:59:49 UTC


README

从模板生成随机字符串。

Latest Stable Version Total Downloads Latest Unstable Version License

安装

通过 Composer 安装

$ composer require lastguest/dynamic-string

如何使用

$generator = new DynamicString();
echo $generator->render("I want a (fried|double|spicy) (tuna|salmon|crab) (sushi|(ura|te)maki), please.");

模板

使用 () 定义一个组,该组将由包含的替代方案之一随机选择进行替换。

使用 | 字符作为多个选项的分隔符。

此模板将随机渲染

(Yes|No)

组可以嵌套,它们将按深度优先顺序解析。

此模板将随机渲染 手指手指们手们

(Finge(r|rs)|Han(d|ds))

生成随机寿司订单的完整模板

I want a (fried|double|spicy) (tuna|salmon|crab) (sushi|(ura|te)maki), please.

一些输出结果

I want a spicy salmon sushi, please.
I want a double tuna uramaki, please.
I want a double salmon temaki, please.
I want a spicy crab sushi, please.

更改默认组括号和分隔符

您可以在 DynamicString 构造函数中更改默认组括号和分隔符。

$generator = new DynamicString('<>',',');
echo $generator->render("<public,protected,private> function(<string,array,callable> myVar){};");

输出

private function(array myVar){};

其他示例

DynamicString 的有趣用途:奇幻RPG故事生成器。

$generator = new DynamicString();

$name = "(Quick|Fast|Wet|Rusty|Warm|Curved|Old|Terror|Notched|Smelly|Loud|Heavy|Shiny|Sparkling|Fire|Laser|Cold|Fizzle|Power|Bad|Good|Rustle|Dark|Smokey|Super|Fishy|Pointy|Flash|Beauty|Bleeding|Foo|Master|Small|Big|Red|Gray|Hairy|Magic|Broken|Sharp|Grand|Straight)(mind|blower|killer|hand|ey(e|es)|fee(t|ts)|finge(r|rs)|nose|armpi(t|ts)|blaster|rhymes|bar|sword|blade|breath)";

$race = "(lion|human|worm|rat|orc|elf|pixie|walrus|rooster|dog|parrot|rabbit)";
$class = "(rogue|paladin|warrior|cook|cleric|psychopath|fisherman|wolf)";
$player = "$name, the $race $class.";

$sillystory = "(A (sloppy|quick|brave|small|gentle|cruel|fabulous|shiny) $class $race, named $name) (jumped onto|walked to|crawled under|entered|sprinted to|runned into) a( rooftop| bridge|n house| wormhole|n inn| dungeon) (shouting|whispering|saying|barfing|asking for) ((ancient|magic|modern|silly|awkward) (words|names|runes|spells|shouts|rhimes|swears|songs|tacos)).";

现在,我们可以使用以下内容生成一个愚蠢的故事:

echo $generator->render($sillystory);

一些示例

A cruel rogue orc, named Smellyarmpits jumped onto an house barfing magic tacos.
A fabulous paladin pixie, named Graybar jumped onto a rooftop shouting silly runes.
A brave paladin worm, named Pointyblaster runned into an inn saying awkward names.
A brave psychopath rooster, named Wetsword entered a bridge whispering silly words.
A shiny paladin worm, named Darkeyes walked to a bridge asking for awkward names.
A small psychopath rooster, named Bleedingbar crawled under an inn saying magic songs.
A sloppy warrior parrot, named Rustyblower jumped onto an house asking for ancient swears.

或者我们可以为我们的角色生成一些有趣的名字

echo $generator->render($player);
Badblade, the rabbit cleric.
Hairykiller, the elf fisherman.
Bleedingblower, the pixie psychopath.
Notchedrhymes, the pixie paladin.
Fastfingers, the human psychopath.
Hairyfeets, the pixie fisherman.

许可协议(MIT)

版权所有(c)2015 Stefano Azzolini

在此特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人免费使用权,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许软件的接收者进行此类操作,但需遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是否因合同、侵权或其他行为而引起,无论是在软件或其使用或其他操作过程中产生的。