2012-03-17 11 views
1

私は変換文字

などの特殊文字に文字を変更する機能を作りたい私はそれは私が印刷した後(н̈̈ǝ̈̈l̈̈l̈̈σ̈̈м̈̈ӵ̈ӥ̈ɑ̈̈м̈̈ǝ̈̈ı̈̈ƨ̈̈к̈̈ɑ̈̈я̈̈l̈̈)である必要があり、このコード

$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; 
} 

を作りました。

上記のコードは機能しません。だから私にそれを修正してください。

よろしく

+0

éとeの間のコードに関連ロジックが表示されません。 '$ random = @array_rand($ text [$ i]);' $ textは文字列ではなく、$ text [$ i]であっても単一の要素を返します。作業。また、なぜあなたは@を使用していますか?あなたのエラーを隠すだけです。 – Geekfish

答えて

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

編集:http://php.net/manual/en/function.str-replace.phpを使用して

$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

私は自分のコードを更新して明瞭にするように更新しました –

+0

はい、これを$ sで置き換えます(例えば、 'e'をアクセント記号付きの 'e'に置き換えます)。 –

+0

手紙の半分が何かを意味するのか分かりませんでした。申し訳ありませんが、あなたは、しかし私は、新しい例がそのコンセプトを理解するのに十分であるはずだと考えています。 –

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

私のコードを明確にするように更新しました。 –

0

し、あなたの文字を含む配列を使えば、簡単にこの

を行うことができます
$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̈̈