簡體   English   中英

str_replace不適用於PHP上的數組參數

[英]str_replace doesn't work with array arguments on PHP

以下代碼在PHP上不起作用。 實際結果是:'ЯЯЯ'->'ЯЯЯ'(應為'яяя')為什么?

function strtolower_rus($string) { 
    $upper = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я',' ');
     $lower = array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я',' ');
    return strtolower(str_replace($upper, $lower, $string));
} 

更新:

我在源文件上使用UTF編碼。 但是不能使用CP-1251編碼,因為apache不接受它。 有什么解決辦法?

更新:

我也檢查了以下代碼:

$lower = array('Я' => 'я');

function strtolower_rus($string) { 
    return strtolower(strtr($string, $lower));
} 

它返回一個丑陋的字符而不是'я':(

檢查下面的代碼。 工作正常。

header('content-type:text / html; charset = utf-8'); 函數strtolower_rus($ string){$ upper = array('А','Б','В','Г','Д','Е','Ё','Ж','З','И ','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф', 'Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я',''); $ lower = array('а','б','в','г','д','е','ё','ж','з','и','й',' к','л','м','н','о','п','р','с','т','у','ф','х','ц' ,'ч','ш','щ','ъ','ы','ь','э','ю','я',''); 返回str_replace($ upper,$ lower,$ string); }

$ result = strtolower_rus('БНAKTARAZBHATTA');

回聲$結果;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM