2016-08-28 3 views
0

で交換部品を配置は私のコードです: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のテーブルからデータを取得して、英語で特定の語句を検索するには、このコードを使用していますし、それをブルガリア語のものと置き換えるためにsettedというフレーズに置き換えます。

例: I have very големи сини eyes

I have very big blue eyes. はに変換されます。フレーズbig blueがあり、見つけられる位置にголеми синиと置き換えます。

つまり、置換された部分を文字列の先頭に移動させて、最終結果を私の例ではголеми сини I have very eyesとすることができます。

例の文は意味がありませんが、例として作成しました。

+1

** deprecatedを使用して停止し、PHP7で削除された** mysql_ *関数を削除してください。 PDOに移行し、Prepared Statementの使用を開始します。 –

+1

あなたが本当にトニー・スタークだったならば、あなたはa)mysql_ *を使わないだろう。b)助けを求めないだろう。c)すでに答えを知っている。 –

+0

@CharlotteDunois私は私の全経験スタックオーバーフロー。あなたは私の一日を作った。助けて、明白なことを指摘してくれてありがとう。私はプロダクションウェブサイトでこれを使用していません。私はいくつかのテストをしています。 –

答えて

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); 
+0

実際にはスペースの代わりに ""で置き換える必要があります。これは、テキスト内の巨大なスペースのギャップを防ぎます。 –

+0

あなたの答えで私は以下を受け取ります: 'アレイは私の目が非常にいいです ' –

+0

@TonyStarkは私の答えとそれを動作させるためのステップを見ます。 –

0

まずオフPDOを使用してデータベースと対話したいと思うでしょう。 mysql_ extensionsは非推奨となり、SQLプラクティスは脆弱です。 strposを使用して文字列を操作できます。php.net/manual/en/function.strpos.phpを参照してください。まず、次のようにします:置き換えるテキストを見つけ、翻訳し、$ strip = str_replace( ""、$ word)を使って単語を削除し、最後に結果を新しい変数ikeに追加します。 variable = $ translate。$ strip。うまくいくと助けてくれる

関連する問題