2009-12-30 29 views
3

我目前在希臘項目中工作。在該項目中,所有內容都是希臘文,並且我有一個搜索功能。搜索過程很好。但是strtoupper()並沒有將希臘語翻譯爲大寫字母,而strtolower()也沒有將希臘語翻譯爲小寫字母。需要使用strtoupper和strtolower搜索希臘字母中的內容

但英語語言工作正常。有沒有任何可能的方法將希臘字母轉換爲UPPER和LOWER的情況。

感謝

FERO

+0

你不需要必須將針/乾草堆轉換爲大寫字母,以使搜索不區分大小寫。有些函數忽略了case _and_可以處理各種代碼頁/ unicode,例如http://docs.php.net/function.mb-stripos – VolkerK 2009-12-30 15:02:40

回答

6

沒有理由mb_strtolower()mb_strtoupper()不應該工作:

<?php 

header('Content-Type: text/html; charset=utf-8'); 

echo mb_strtoupper('παπακωνσταντινου', 'UTF-8'); // ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ 
echo mb_strtolower('ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ', 'UTF-8'); // παπακωνσταντινου 

?> 

使用mb_convert_case()是另一種選擇,特別是如果你想模仿ucwords()

<?php 

header('Content-Type: text/html; charset=utf-8'); 

echo mb_convert_case('παπακωνσταντινου', MB_CASE_UPPER, 'UTF-8'); // ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ 
echo mb_convert_case('ΠΑΠΑΚΩΝΣΤΑΝΤΙΝΟΥ', MB_CASE_LOWER, 'UTF-8'); // παπακωνσταντινου 
echo mb_convert_case('παπακωνσταντινου', MB_CASE_TITLE, 'UTF-8'); // Παπακωνσταντινου 

?> 
+0

感謝您的解釋阿克塞爾,你說得對。 – Fero 2010-01-04 06:50:55

2

如何嘗試這些功能:

mb_strtoupper 
mb_strtolower 
+0

Sarfraz ..它沒有工作..當我「回聲」它時,我會得到某種特殊字符。即使我沒有得到任何結果 – Fero 2009-12-30 13:18:55

+0

它使用mb_convert_case – Fero 2009-12-30 13:20:32

0

$海峽= 'παπακωνσταντινου';

$ test = mb_convert_case($ str,MB_CASE_UPPER,「UTF-8」);

這是正確的語法。

感謝所有球員的