这是我的代码:
function TranslatedTitle($Title) {
ConnectWithMySQLDatabase();
$v = mysql_query("SELECT * FROM `ProductTranslations`");
while($vrowis = mysql_fetch_array($v)){
$English[] = $vrowis['English'];
$Bulgarian[] = $vrowis['Bulgarian'];
}
$TranslatedTitle = str_replace($English, $Bulgarian, $Title);
return $TranslatedTitle;
}
我正在使用此代码从MySQL表中获取数据,然后用英语搜索某个短语,然后用设置的短语替换它以用保加利亚语替换英语短语。
示例:
I have very big blue eyes.
将被翻译为:
I have very големи сини eyes
。它使用短语big blue
并将големи сини
替换为可以找到它的位置。
换句话说,如何将被替换的部分移动到字符串的开头,并将我的示例作为големи сини I have very eyes
给出最终结果。
示例中的句子没有任何意义,但我已将其创建为示例。
答案 0 :(得分:0)
我会尝试循环遍历$English
数组,当找到匹配的单词时将其移动到开头,然后翻译......类似于:
foreach($English as $word){
$pos = strpos($Title, $word);
if ($pos !== false) {
//english word found
$Title = $word . str_replace($English, '', $Title);
break;
}
}
然后
$TranslatedTitle = str_replace($English, $Bulgarian, $Title);
答案 1 :(得分:0)
首先,您需要使用PDO与数据库进行交互。 mysql_扩展现在已被弃用,不良做法且易受sql注入攻击。您可以使用strpos操作字符串,请参阅php.net/manual/en/function.strpos.php。您将首先想要这样:通过使用$ strip = str_replace("",$ word)找到要替换,翻译,删除单词的文本,最后将结果附加到一个新的变量,这个$ variable = $ translate。$ strip。希望有所帮助