1

str_replaceでいくつかの文字を変更したいのではなく、配列を文字列に変換しようとしています。変換以外はすべて正常に動作します。私のコードの問題は何ですか?

function tr_cevir($text = "") {
    //converts turkish charters in to english chracters
    $TR = array('ç', 'Ç', 'ı', 'İ', 'ş', 'Ş', 'ğ', 'Ğ', 'ö', 'Ö', 'ü', 'Ü', 'I');
    $EN = array('c', 'c', 'i', 'i', 's', 's', 'g', 'g', 'o', 'o', 'u', 'u', 'i');
    $text = str_replace($TR, $EN, $text);
    $text = str_replace(" ", "", $text);
    return $text;
}

$my_array = array(çali, Şeli, Ğahmet);

$string = implode(", ", $my_array);

$string_converted = tr_cevir($string);

echo $string_converted; //output returns null

次のような出力を取得するにはどうすればよいですか。

cali、seli、gahmet

4

7 に答える 7

1

コード全体を次のように置き換えてみてください。

$my_array = array('çali', 'Şeli', 'Ğahmet');

$string = implode(", ", $my_array);

$string_converted = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $string);

echo $string_converted;

iconv()

于 2012-05-21T11:59:03.247 に答える
1
$my_array = array('çali', 'Şeli', 'Ğahmet');

そしてそれは動作するはずです。

于 2012-05-21T11:59:46.143 に答える
0
$my_array = array(çali, Şeli, Ğahmet);

文字列の周りの「」または「」を忘れました。

于 2012-05-21T11:58:06.943 に答える
0

配列の内容を引用する必要があります。

$my_array = array('çali', 'Seli', 'Gahmet');
于 2012-05-21T11:58:06.970 に答える
0

あなたはおそらくこれを探しています:

$converted = iconv('UTF-8', 'US-ASCII//TRANSLIT', $text);

非ASCII文字をそれらのASCII「最も近い同等物」に音訳します。
についての詳細iconv()

于 2012-05-21T11:59:58.537 に答える
0

まず、配列内の値を引用符で囲みます。

$my_array = array("çali", "Şeli", "Ğahmet");
于 2012-05-21T12:01:13.990 に答える
0

翻訳用に独自のコードを追加する必要はありません。同じライブラリが既に存在します。http://php.net/manual/en/function.iconv.php を確認してください

于 2012-05-21T12:07:13.910 に答える