php str_replace不适用于翻译单词

时间:2017-12-04 10:51:44

标签: php

我正在尝试为我的项目添加翻译单词。但是str_replace不起作用。

我有一个语言数据库表。

如果用户选择英语,那么例如用户会看到这个词:

英语: Mustafa 今天和他的朋友 ahmet 一起去了电影院。

如果用户选择土耳其语,那么例如用户会看到这个词:

土耳其语: Mustafa 错误arkadaşı ahmet ile birlikte sinemaya gitti。

我使用过这样的str_replace:

    $splaceHolder = array( "{{username}}", 
                           "{{otherusername}}" ); 

    $sname = array( "<a href='".$base_url.$username."'>".$username."</a>", 
                    "<a href='".$base_url.$otherusername."'>".$otherusername."</a>" );

str_replace在这里:

$note = str_replace($splaceHolder, $sname, $lang['text'][$lang]);

$lang['text'][$lang]来自语言表,文字是英语:

{{username}} went to the cinema with his friend {{otherusername}} today.

土耳其语:

{{username}} bugün arkadaşı {{otherusername}} ile birlikte sinemaya gitti.

str_replace在这里不起作用。

英语版本{{username}} went to the cinema with his friend {{otherusername}} today.显示此 Mustafa 今天和他的朋友 ahmet 一起去了电影院。

显示土耳其语{{username}} bugün arkadaşı {{otherusername}} ile birlikte sinemaya gitti. Mustafa 错误arkadaşı ahmet ile birlikte sinemaya gitti。

但我只是按照以下方式进行。

  

{{username}}和他的朋友{{otherusername}}一起去了电影院   今天。

1 个答案:

答案 0 :(得分:1)

str_replace适用于您的示例。

试试这个:

<?php
    $string = "{{username}} went to the cinema with his friend {{otherusername}} today.";

    $res = str_replace("{{username}}", "firstuser", $string);
    $res = str_replace("{{otherusername}}", "seconduser", $res);
    echo "result: ".$res."<br />";
?>

即使你可以用一行代替两种方式:

$res = str_replace(["{{username}}", "{{otherusername}}"], ["firstuser", "seconduser"], $string);

适合我。