我有以下功能轉換的特殊重音字符(如A)爲-ZA-Z字符串中的字符:爲什麼strpos返回不同的結果?
function tradu($sir){
$sir_aux = $sir;
$diacritice = array("ă"=>"a", "â"=>"a", "î"=>"i", "Î"=>"I", "ș"=>"s", "ş"=>"s", "ţ"=>"t", "ț"=>"t");
for($i=0; $i<strlen($sir_aux); $i++){
foreach($diacritice as $key=>$value){
if($sir_aux[$i]==$key)
$sir_aux[$i]=$value;
}
}
$sir_aux = strtr($sir, $diacritice);
return $sir_aux;
}
比方說,一個是原始的字符串,a_translated被翻譯的字符串。
當我使用strpos(a, string_to_find)
和strpos(a_translated, string_to_find)
,返回的值是不同的。我也檢查了strlen(a)
和strlen(a_translate)
,他們給出了不同的結果。 這是爲什麼發生?
我需要這樣的解釋,因爲我需要搜索,如果有口音的字符串包含給定普通的字符串(不帶重音),但我必須從原始的字符串返回的部分,我發現它,即使它包含重音。
我試過 我翻譯原始字符串,找到位置searched_string開始的地方,然後我substr(ORIGINAL_STRING, position)
。這是我注意到職位不符合的地方。
例子: 原始字符串:Universitatea一個FOST înfiinţată在2001年pentru一個oferi ... 搜索的字符串:infiintata 期望的結果:înfiinţată在2001年pentru一個oferi ...
有什麼區別? – 2015-04-03 13:01:19
@BartFriederichs strpos在包含重音符和相同字符串但翻譯的字符串中搜索字符串(例如infiintata)時給了我不同的結果。例如234和265 – 2015-04-03 13:04:05