我可以交换文本区域中的单个单词吗?
我有一个文本是显示一些用户输入的文本,我的目标是做一个简单的翻译?我可以交换文本区域中的单个单词吗?
例如,我可以将猫的所有用法替换为猫吗?
会有很多单词要做,所以会有更快捷的方式使用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>
任何帮助或想法,将不胜感激。
无关注意:过去我发布的几个问题最初并没有让我发布,因为他们没有达到质量标准,我在哪里可以找到质量标准?
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-01 14:24:29
nvm ive明白了。 – 2013-05-01 14:27:09
什么是最简单的方法来取代很多单词?即将有大约150个。 – 2013-05-01 14:40:24
如果使用下面的功能,你可以在一个情况下更换任何工作在敏感的方式:
str_ireplace ("dog", "cat", $status);
如果要替换多个单词,你可以使用数组:
str_ireplace (array('dog', 'mouse'), array('cat', 'hamster'), $status);
阵列例如将取代词语的相同的索引,例如dog
将cat
被替换,并mouse
将hamster
被替换。
标准可以在** [常见问题]中找到(http://stackoverflow.com/faq)** – brbcoding 2013-05-01 14:16:49
你会想[这](http://php.net/manual/en/function。 str-replace.php) – chriz 2013-05-01 14:16:50