PHP -查找数组中出现的内容,然后将替换的部分放在开始位置


PHP - Find occurence in array and then place the replaced part at the start

下面是我的代码:

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

例句中的句子没有意义,但我创造了它作为一个例子。

我会尝试遍历$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);

首先,您需要使用PDO与数据库进行交互。Mysql_扩展现在被弃用了,这是不好的做法,容易受到SQL注入的攻击。您可以使用strpos操作字符串,参见php.net/manual/en/function.strpos.php。您首先要这样做:找到要替换的文本,翻译,通过使用$strip = str_replace(",$word)从任何地方删除单词,最后将结果附加到像这样的新变量$variable = $translate。美元的地带。希望对大家有所帮助