我有一个文本显示一些用户输入的文本,我的目的是做一个简单的翻译?
例如,我可以把单词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
。