我可以在文本区域中交换单个单词吗?


can i swap individual words in a text area?

我有一个文本显示一些用户输入的文本,我的目的是做一个简单的翻译?

例如,我可以把单词dog的所有用法都换成cat吗?

将有很多字要做,所以会有一个更快的方法使用php, html或其他语言来做到这一点,也许流作家/阅读器?

这个方框将显示用户输入的内容:

<div align="center">
<form method="GET" action="translate.php">
<textarea name="status2" cols="50" rows="5"<input type="text"/>
<?php echo $status ?>
</textarea><br>
<input type="submit" value="post to wall" />
</form>
</div>

任何帮助或建议都将不胜感激。

无关的注意:过去的几个问题,我已经发布最初不让我发布,因为他们不符合质量标准,我在哪里可以找到质量标准?

PHP可以很容易地处理这个问题。

<?php echo str_replace('dog','cat',$status); ?>

第一个词是要搜索的项,第二个词是要替换的项,第三个词是要在其中搜索的项。

编辑

按要求,一个例子如何使它可用于许多项目,而不区分大小写。首先,创建一个PHP函数:

function replaceWords($existing,$new,$content){
    str_ireplace($existing,$new,$content);
}

然后为所有要查找的单词和所有要替换的单词(以相同的顺序)创建数组:

$existing_array = array('dog','elephant','bird');
$new_array = array('cat','eagle','your mom');
// dog replaced with cat, elephant replaced with eagle, bird replaced with your mom

然后使用for循环调用函数:

for($i = 0; $i < 150; $i++){
    function replaceWords($existing_array[$i],$new_array[$i],$status);
}

我写了150,因为你说了那个数字,但确切的单词数应该在那里。应该可以了。

更多信息可以在这里找到。

第二个编辑

更自动化的for循环:

$cnt = count($existing_array); // you can use either array, since they're the same length
for($i = 0; $i < $cnt; $i++){
    function replaceWords($existing_array[$i],$new_array[$i],$status);
}

这样,您只需要向数组中添加项,并且新的单词计数将是for循环的新长度。手工代码越少越好。

如果您使用下面的函数,您可以以区分大小写的方式替换任何工作:

str_ireplace ( "dog", "cat", $status );

如果你想替换多个单词,你可以使用数组:

str_ireplace ( array('dog', 'mouse'), array('cat', 'hamster'), $status );

数组示例将替换相同索引中的单词,例如dog将替换为cat, mouse将替换为hamster