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

时间:2013-05-01 14:14:32

标签: php html

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

例如,我是否可以将所有使用单词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>

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

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

2 个答案:

答案 0 :(得分: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循环的新长度。手动代码越少越好。

答案 1 :(得分:0)

如果您使用以下功能,则可以以敏感方式替换案例中的任何作品:

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

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

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

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