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

我怎样才能得到这样的输出:

卡利、塞利、加梅特

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 回答