DEMO: https://3v4l.org/u5sUa
$wordd1='فريدونكنار';
$wordm2='فریدونکنار';
if($wordd1 == $wordm2){
echo 'ok'; //i want this result
}else{
echo 'no';
}
答案 0 :(得分:2)
这些字符串看似相似,但它们不相等!
第一个字符串包含字符:
U+641 'ف' ARABIC LETTER FEH
U+631 'ر' ARABIC LETTER REH
U+64A 'ي' ARABIC LETTER YEH <- 1
U+62F 'د' ARABIC LETTER DAL
U+648 'و' ARABIC LETTER WAW
U+646 'ن' ARABIC LETTER NOON
U+643 'ك' ARABIC LETTER KAF <- 2
U+646 'ن' ARABIC LETTER NOON
U+627 'ا' ARABIC LETTER ALEF
U+631 'ر' ARABIC LETTER REH
第二个字符串包含字符:
U+641 'ف' ARABIC LETTER FEH
U+631 'ر' ARABIC LETTER REH
U+6CC 'ی' ARABIC LETTER FARSI YEH <- 1
U+62F 'د' ARABIC LETTER DAL
U+648 'و' ARABIC LETTER WAW
U+646 'ن' ARABIC LETTER NOON
U+6A9 'ک' ARABIC LETTER KEHEH <- 2
U+646 'ن' ARABIC LETTER NOON
U+627 'ا' ARABIC LETTER ALEF
U+631 'ر' ARABIC LETTER REH
第三和第七个位置的字符(标记为<- 1
和<- 2
)不一样。
答案 1 :(得分:0)
$wordd1='فريدونكنار';
$wordm2='فریدونکنار';
$result=strcmp($wordd1,$wordm2);
if($result===0){
echo 'ok';
}else{
echo 'no';
}
strcmp()函数比较两个字符串。 strcmp()函数是二元安全的,区分大小写。这个函数返回0,两个字符串相等。
答案 2 :(得分:0)
我不知道你的语言是如何运作的,但似乎你的字符串中有相似的字符。
function illustrate_bytes($str1, $str2) {
for( $i=0; $i<strlen($str1); $i++ ) {
printf("%02x %08d : %02x %08d : %s\n",
ord($str1[$i]), decbin(ord($str1[$i])),
ord($str2[$i]), decbin(ord($str2[$i])),
$str1[$i] === $str2[$i] ? 'same' : 'diff');
}
}
illustrate_bytes('ﻑﺮﻳﺩﻮﻨﻜﻧﺍﺭ', 'ﻑﺭیﺩﻮﻧکﻥﺍﺭ');
输出:
d9 11011001 : d9 11011001 : same
81 10000001 : 81 10000001 : same
d8 11011000 : d8 11011000 : same
b1 10110001 : b1 10110001 : same
d9 11011001 : db 11011011 : diff
8a 10001010 : 8c 10001100 : diff
d8 11011000 : d8 11011000 : same
af 10101111 : af 10101111 : same
d9 11011001 : d9 11011001 : same
88 10001000 : 88 10001000 : same
d9 11011001 : d9 11011001 : same
86 10000110 : 86 10000110 : same
d9 11011001 : da 11011010 : diff
83 10000011 : a9 10101001 : diff
d9 11011001 : d9 11011001 : same
86 10000110 : 86 10000110 : same
d8 11011000 : d8 11011000 : same
a7 10100111 : a7 10100111 : same
d8 11011000 : d8 11011000 : same
b1 10110001 : b1 10110001 : same
所以相似之处是:
\xd9\x8a
:“ي”和\xdb\x8c
:“ی”\xd9\x83
:“ك”和\xda\xa9
:“ک”答案 3 :(得分:0)
波斯语中有两个字符,每个字符都有两个不同的字符值,其中第二个值来自阿拉伯字符。
首先是ی
和ي
。
另一个是ک
和ك
。
您必须将第二个出现的第一个替换为第一个。
一个示例代码是:
$str = str_replace('ی','ي',$str);
答案 4 :(得分:0)
使用函数替换相似的字符,然后比较两个字符串。
function replaceSimilarChars($srting)
{
$srting = str_replace('ي', 'ی', $srting);
$srting = str_replace('ك', 'ک', $srting);
// any other replacement
return $srting;
}