PHP通过随机查找/替换“旋转”内容

时间:2010-03-07 03:13:37

标签: php

我正在使用file_get_contents('mysourcefile.html')将mysourcefile.html的内容加载到mysql db中。

在将其插入数据库之前,我想对mysourcefile.html的内容做两件事。

首先...

我想对mysourcefile中包含的特定字符串匹配进行查找/替换。

例如:用户可以在其源输入文件中放置的标记如下所示:

  

欢迎来到[site-name],位于   [site-url]请通过[site-email]与我们联系   如果你需要帮助。

我想对这些值进行简单字符串匹配替换,因为它们在写入db之前出现在源文件中。替换文本将来自wordpress数据库设置字段。例如,get_option('admin_email')和get_option('home')

...其次

我还希望允许用户通过特殊括号指定一个单词串,以便在每次导入时使用相同的输入源文件随机化内容。

例如,在上面的句子中,它可能在源文件中编码,如下所示:

  

我也[%喜欢|更喜欢|想要%]   [%allow | permit%]用户为
  [%指定|声明|选择%]通过   [%special | unique |预设%]括号,   一串[%words | characters | text%]   在其中使用以便随机化   使用的网站内容   相同的输入源文件。

所以我想解析那个内容字符串并对每个set元素进行简单的随机替换,从集合中挑出一个单词并将该单词用于插入。

它基本上是一个粗略的内容替换/旋转器,我正在寻找一些方法和方法,我可以用来做它。

1 个答案:

答案 0 :(得分:3)

第一部分:

$tags = array('[site-name]', '[site-url'], '[site-email]');
$words = array("My Name", "My URL", "My Email");
$content = str_replace($tags, $words, $content);

第二部分可能有点棘手。但过程是:

Grab the content between "[%" and "%]" tags.
implode("|", $string);
Pick a random value

所以..你需要一个了解Regex的人。