5

我昨晚醒来时脑子里有一个想法:PHP 可以用来生成听起来自然的随机单词吗?(就像 Lorem ipsum 的诗句)。

  1. 单字母单词:'a,e,i,o,u'
  2. 双字母词:元音和辅音的任意组合。
  3. 我认为最大字长是六个字母。

目的是用它而不是“Lorem ipsum”来填充网站模板上的空间,或者为某些 PHP 脚本发送测试电子邮件以确保 mail() 正常工作。

但是我对它如何工作的想法是 PHP 会生成随机长度的单词,每个单词 1-6 个字母,并带有一些“不要这样做”规则,例如“没有两个单字母单词彼此相邻”或“没有连续三个元音”或“连续没有三个辅音”,并在句子的 4 到 8 个单词后自动添加标点符号和大写。

这有可能吗?如果有,我可以实现任何预先存在的类或函数吗?

4

1 回答 1

2

您可以采用上下文无关的语法方法:http ://en.wikipedia.org/wiki/Context-free_grammar

<word> := <vowel> | <consonant><remaining word following consonant> | <vowel><remaining word following vowel>
<vowel> := a|e|i|o|u
<consonant> := b|c|d|f|g|...
<word following vowel> := <consonant><remaining word following consonant>
...and so on

用任何程序语言(包括 C 和 PHP)实现该语法,然后开始根据语法生成单词。

我不知道任何通用的 PHP 解析框架,但您可以查看编写它们的最佳实践:编写编程语言解析器的最佳实践

于 2012-06-27T15:44:26.367 回答