2013-05-01 40 views
-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> 

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

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

+2

标准可以在** [常见问题]中找到(http://stackoverflow.com/faq)** – brbcoding 2013-05-01 14:16:49

+1

你会想[这](http://php.net/manual/en/function。 str-replace.php) – chriz 2013-05-01 14:16:50

回答

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,因为你说过这个数字,但确切的词数应该去那里。这应该做到这一点。

More info can be found here

第二个编辑

一个更加自动化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循环。手动编码越少越好。

+0

辉煌,是否有修改它,所以它不区分大小写? – 2013-05-01 14:24:29

+0

nvm ive明白了。 – 2013-05-01 14:27:09

+0

什么是最简单的方法来取代很多单词?即将有大约150个。 – 2013-05-01 14:40:24

0

如果使用下面的功能,你可以在一个情况下更换任何工作在敏感的方式:

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

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

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

阵列例如将取代词语的相同的索引,例如dogcat被替换,并mousehamster被替换。

相关问题