2011-08-13 94 views
1

使用PHP,我正在寻找一段文字并在其中搜索并用列表中的另一个词替换某些词。PHP用一个随机单词从一个列表中替换一个单词?

例如

搜索通过文字来发现这个列表中的任何字: 漂亮,漂亮,华丽,可爱的,有吸引力,有吸引力的

,然后与另一名来自同一列表 取代这个词(而不是选择相同字)。

希望这是有道理的!

在此先感谢。

+1

好的,现在你的问题在哪里? – miku

+0

寻找文章旋转器 – ArK

+0

笏你试着做,张贴一些示例代码 –

回答

2

你可以使用preg_replace_callback

$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); 

,以确保您的$needle阵列不包含在正则表达式的特殊含义的字符,我们搜索之前呼吁阵列的每个项目preg_quote

而不是做一个do{}while()循环,你也可以复制阵列和删除匹配的字(非常依赖于实际的数据:→复制&删除一些项目,很多项目→选择一个随机的,直到它不同于匹配)

相关问题