Bir dize php programlama dili utf8 ve iso8859-8 hem ibranice karakterler içeriyorsa I () düzenli ifadeler kullanarak tespit edebilmek istiyorum. teşekkürler!
İşte map of the iso8859-8 character set. Aralık E0 - FA İbranice için ayrılmış gibi görünüyor. Sen bir karakter sınıfının bu karakterleri için kontrol edebilir:
[\xE0-\xFA]
UTF-8 için, range reserved for Hebrew 05F4 için 0591 gibi görünmektedir. Yani sahip olduğunu tespit olabilir:
[\u0591-\u05F4]
Burada PHP regex maç bir örnek:
echo preg_match("/[\u0591-\u05F4]/", $string);
Burada bir dizesinde ilk karakter ibranice olup olmadığını kontrol etmek için küçük bir fonksiyon:
function IsStringStartsWithHebrew($string)
{
return (strlen($string) > 1 && //minimum of chars for hebrew encoding
ord($string[0]) == 215 && //first byte is 110-10111
ord($string[1]) >= 144 && ord($string[1]) <= 170 //hebrew range in the second byte.
);
}
iyi şanslar :)
Birincisi, böyle bir dize tamamen yararsız olacağını - İki farklı karakter setleri bir karışımı?
Iso8859-8'de İbranice karakterleri ve UTF-8 multibyte dizilerin her byte ikisi de, ord($char) > 127
bir değere sahip. Yani ne yapacağını 127 daha büyük bir değere sahip tüm bayt buluyorum, ve sonra is8859-8 olarak mantıklı olmadığını kontrol edin, ya da düşünüyorsanız onlar UTF8-dizisi olarak daha mantıklı olur ...