我有一个文字显示一些用户输入的文字,我打算做的是一个简单的翻译?
例如,我是否可以将所有使用单词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>
任何帮助或想法将不胜感激。
无关注:我发布的过去几个问题最初没有让我发布,因为他们不符合质量标准,我在哪里可以找到质量标准?
答案 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,因为你说过这个号码,但确切的字数应该去那里。应该这样做。
第二次编辑
更加自动化的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
将替换为cat
,mouse
将替换为hamster
。