-1

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

例如,我可以把狗这个词的所有用法都换成猫吗?

会有很多话要做,那么有没有更快的方法使用 php、html 或其他语言来做到这一点,也许是 streamwriter/reader?

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

<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>

任何帮助或想法将不胜感激。

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

4

2 回答 2

1

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循环的新长度。手动代码越少越好。

于 2013-05-01T14:18:00.493 回答
0

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

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

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

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

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

于 2013-05-01T14:49:04.353 回答