2012-04-29 2 views
0

Я использую эту функцию, чтобы перевести материал:Проверьте часть строки существует внутри массива

function t($string) 
{ 
    global $_ACTIVE_LANGUAGE; 
    if(is_array($_ACTIVE_LANGUAGE) && array_key_exists($string,$_ACTIVE_LANGUAGE)) 
    { 
     return (!empty($_ACTIVE_LANGUAGE[$string])) ? $_ACTIVE_LANGUAGE[$string] : $string; 
    } else { 
     return $string; 
    } 
} 

Он хорошо работает, я ставлю т («Hola»), и если есть на английский файл с массивом «Hola '=>' hello ', это переводит его.

Однако, теперь я хочу, чтобы иметь возможность перевода строк, которые могут содержать больше текста, чем просто строки, как в этом примере:

$string1 = 'download-file-justin-bieber-awesome-voice.html'; 
$string2 = 'view-file-rihanna-very-sexy.html'; 
$string3 = 'mostseen12345.html'; 
$string4 = 'incredible:stuff-and:real-things.html'; 

$array = array 
(
    'download-file' => 'descargar-archivo', 
    'view-file' => 'ver-archivo', 
    'mostseen' => 'masvistos', 
    'incredible:stuff' = 'cosas:increibles' 
} 

Я хочу сценарий, чтобы иметь возможность переводить части в ключах массива в данных строках. Это вообще возможно?

+0

Значит, 'mostseen12345' станет' mavistos12345'? –

+0

@Interstellar_Coder да – Aleix

ответ

1

Вы можете проверить str_replace() на php-manual.

$from = array('download-file','view-file','mostseen','incredible:stuff'); 
$to = array('descargar-archivo','ver-archivo','masvistos','cosas:increibles'); 

$translated_string = str_replace($from,$to,$original_string); 
+0

Спасибо @Zombaya, отлично работает! – Aleix