PHP - 在数组中查找出现,然后将替换的部分放在开头

时间:2016-08-28 20:53:46

标签: php

这是我的代码:

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给出最终结果。

示例中的句子没有任何意义,但我已将其创建为示例。

2 个答案:

答案 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。希望有所帮助