0

このコードに問題があります...

$text = "cat cow";
$a = array("cat", "cow");
$b = array("dog", "bull");
$c = array_combine($a, $b);
$output = strtr($text, $c);

このコードは、2 つの配列をマージし、テキストを置き換えます。これは正常に機能していますが、このコードをユニコード文字で試すと...つまり

<?php

function convert($fromc, $toc, $otext) {
    $raavi = array("~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "+", "`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "_", "=", "ਥ", "ੱ", "ਓ", "੍ਰ", "ਠ", "ੈ", "ੂ", "ੀ", "ੌ", "ਫ", "{", "}", "।", "ਤ", "ੱ", "ੲ", "ਰ", "ਟ", "ੇ", "ੁ", "ਿ", "ੋ", "ਪ", ".", "॥", "\\", "ੳ", "ੰ", "ਧ", "ਾਂ", "ਘ", "੍ਹ", "ਝ", "ਖ", "਼", ":", "\"", "ਅ", "ਸ", "ਦ", "ਾ", "ਗ", "ਹ", "ਜ", "ਕ", "ਲ", "   ;", "'", "ਢ", "ਯ", "ਛ", "ੜ", "ਭ", "ਂ", "ੰ", ",", ">", "?", "ਡ", "ਣ", "ਚ", "ਵ", "ਬ", "ਨ", "ਮ", ",", "।", "/", "ੴ", "॥", "#", "੍ਰ", "•", "।", "ੴ", "ੴ", "☬", "ਸ਼", "ਖ਼", "ਗ਼", "ਜ਼", "ਫ਼", "੍ਯ", "#", "॥", "ਲ਼", "੧", "੨");
    $drchatrik = array("~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "+", "`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "=", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "{", "}", "|", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", "]", "\\", "A", "S", "D", "F", "G", "H", "J", "K", "L", ":", "\"", "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'", "Z", "X", "C", "V", "B", "N", "M", ",", ">", "?", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "¡", "«", "¬", "R", "•", "»", "Ã", "Å", "Ç", "È", "É", "Ê", "Ë", "Ì", "Î", "Ñ", "Ò", "Ü", "ñ", "ò");
    $combine = array_combine($$fromc, $$toc);
    $converted = strtr($otext, $combine);
    echo ($converted);
}

?>

うまくいきません。エコーすると配列が結合されますprint_rが、テキストは置き換えられません。

Plzzヘルプ..

4

3 に答える 3

0

ここから mb_strtr を使用してみることができますhttp://code.google.com/p/mbfunctions/

また、変換機能が機能しないサンプル パラメータを提供してください。

于 2012-07-13T06:22:21.917 に答える
0

あなたが望むものを正確に理解するのは少し難しいですが、ループを使用して配列を反復処理します

$raavi = array("ਥ", "ੱ");//shortened for ease of reading
$drchatrik = array("Q", "W");

function convert($otext) {
    global $raavi, $drchatrik
    return(trim(preg_replace($raavi, $drchatrik, $otext)));
}

foreach(array_combine($fromc, $toc) as $otext)
{
    $text_out[] = convert($otext)
}

print_r($text_out);
于 2012-07-13T06:29:50.130 に答える
0

convert("drchatrik", "raavi", "text here")あなたはそれがうまくいくようにそれを呼ぶなら、あなたは混同されています。

于 2012-07-13T06:47:49.623 に答える