2012-03-17 141 views
1

我想要的功能改變字母特殊字母像轉換字母特殊字母

我做了這個代碼

$text = "hello my name is karl"; 
$my_array = array('н̈̈','σ̈̈','м̈̈','ӵ̈','ӥ̈','ɑ̈̈','ǝ̈̈','ı̈̈','ƨ̈̈','к̈̈','ɑ̈̈','я','l̈̈'); 

for ($i = 0, $len = strlen($text); $i < $len; $i++) {  
    $random = @array_rand($text[$i]); # one random array element number 
    $get_it = $my_array[$random]; # get the letter from the array 
    echo $get_it; 
} 

它應該是(н̈̈ǝ̈̈l̈̈l̈̈σ̈̈м̈̈ӵ̈ӥ̈ɑ̈̈м̈̈ǝ̈̈ı̈̈ƨ̈̈к̈̈ɑ̈̈я̈̈l̈̈)我打印後。

上述代碼無法正常工作。所以請幫我糾正它。

問候

+0

我在代碼中看不到é和e之間的任何關聯邏輯。 '$ random = @array_rand($ text [$ i]);'$ text不是數組,它是一個字符串,即使它是$ text [$ i]也會返回一個元素,所以array_rand不會工作。另外,你爲什麼使用@?它只會隱藏你的錯誤。 – Geekfish 2012-03-17 22:48:34

回答

3

http://php.net/manual/en/function.str-replace.php

看這個功能。

$s = array('e', 'something else to search for'); 
$r = array('é', 'something to replace "something else to search for" with'); 

$stringy = str_replace($s, $r, $string); 

PHP有功能的一切:P

編輯:

$search = array('h', 'a', 'm', 'e??', 'n', 'a', 'e?', 'i', 'z', 'k', 'a', 'r', 'l'); 
$replace = array('н̈̈','σ̈̈','м̈̈','ӵ̈','ӥ̈','ɑ̈̈','ǝ̈̈','ı̈̈','ƨ̈̈','к̈̈','ɑ̈̈','я'̈̈,'l̈̈'); 

$newString = str_replace($search, $replace, $string); 
+0

我更新了我的代碼以清除它 – 2012-03-17 22:50:05

+0

是的,只要做到這一點,在$ s放置你想要替換的字符(例如,你想用'e'替換'e',所以把重音符號'e'放在同樣的'$ r'索引與'$ s'中的常規e相同'我將更新我的答案,專門爲你剛發佈的內容 – 2012-03-17 22:52:51

+0

我不知道信件的一半是什麼意思,對不起,但我認爲新的例子應該足以把握這個概念。 – 2012-03-17 22:55:06

0
$string = 'The quick brown fox jumped over the lazy dog.'; 
$patterns = array(); 
$patterns[0] = '/quick/'; 
$patterns[1] = '/brown/'; 
$patterns[2] = '/fox/'; 
$replacements = array(); 
$replacements[2] = 'bear'; 
$replacements[1] = 'black'; 
$replacements[0] = 'slow'; 
echo preg_replace($patterns, $replacements, $string); 

http://php.net/manual/en/function.preg-replace.php

+0

我更新了我的代碼以清除它 – 2012-03-17 22:50:23

0

使用http://php.net/manual/en/function.str-replace.php和數組包含你的角色,你可以很容易地做到這一點

$yourtext = "hello my name is karl"; //Place your text in this 

//Match your characters that you'de like to replace 
$after = array('н̈̈','σ̈̈','м̈̈','ӵ̈','ӥ̈','ɑ̈̈','ǝ̈̈','ı̈̈','ƨ̈̈','к̈̈','я','l̈̈'); 
$before = array('h','o','m','y','n','a','e','i','s','k','r','l'); 

$yourtext = str_replace ($before , $after , $yourtext, $replacing); 

echo $yourtext; //prints н̈̈ǝ̈̈l̈̈l̈̈σ̈̈ м̈̈ӵ̈ ӥ̈ɑ̈̈м̈̈ǝ̈̈ ı̈̈ƨ̈̈ к̈̈ɑ̈̈я̈̈l̈̈