PHP是否将一个单词替换为列表中的随机单词?

PHP是否将一个单词替换为列表中的随机单词?,php,replace,word,Php,Replace,Word,使用PHP,我希望获取一段文本并在其中搜索,然后用列表中的另一个单词替换某些单词 e、 g 在文本中搜索以查找此列表中的任何单词: 漂亮,漂亮,华丽,可爱,迷人,吸引人 然后用同一列表中的另一个词替换这个词 (但不选择相同的单词) 希望这有意义 提前感谢。您可以使用: 为了确保$needle数组不包含正则表达式中具有特殊含义的字符,我们在搜索之前调用数组的每个项 除了执行do{}while()循环之外,您还可以复制数组并删除匹配的单词(这在很大程度上取决于实际数据:项目很少)→ 复制并删除多个项

使用PHP,我希望获取一段文本并在其中搜索,然后用列表中的另一个单词替换某些单词

e、 g

在文本中搜索以查找此列表中的任何单词: 漂亮,漂亮,华丽,可爱,迷人,吸引人

然后用同一列表中的另一个词替换这个词 (但不选择相同的单词)

希望这有意义

提前感谢。

您可以使用:

为了确保
$needle
数组不包含正则表达式中具有特殊含义的字符,我们在搜索之前调用数组的每个项


除了执行
do{}while()
循环之外,您还可以复制数组并删除匹配的单词(这在很大程度上取决于实际数据:项目很少)→ 复制并删除多个项目→ 随机选择一个,直到它与匹配项不同)

好的,现在你的问题在哪里?你想做什么,发布一些示例代码?你想并行还是顺序进行替换?我的意思是,如果文本包含一个
pretty
,它被
beautifuly
替换,那么已经被
beautifuly
替换的是否应该被另一个单词替换?一旦它第一次被替换,以后就忽略它。
$random_string = '…';
$needle = array('pretty', 'beautiful', 'gorgeous', 'lovely', 'attractive', 'appealing');
$new_string = preg_replace_callback(
  array_map(
    function($v) { return '/'.preg_quote($v).'/'; }, // assuming $needle does not contain '/' 
    $needle),
  function($matches) use($needle) {
    do {
      $new = $needle[rand(0, count($needle)-1)];
    while($new != $matches[0]) {
    return $new;
  },
  $random_string);