2013-04-10 6 views
6

मैं इन कोड का उपयोग यह जांचने के लिए कर रहा हूं कि कोई स्ट्रिंग अंग्रेजी में है या नहीं।PHP पता लगाएँ कि गैर-अंग्रेजी

<?php 
$string="で書くタッチイベント (フ"; 
if(!preg_match('/[^\W_ ] /',$string)) 
{ 
echo "Please enter English words only:("; 
} 
else { 
echo "OK, English Detected!"; 
} 
?> 

यह नहीं कर सकते सही परिणाम प्रदान करते हैं क्योंकि "some english text で書くタッチイベント (フ" तरह स्ट्रिंग यह भी अंग्रेजी भाषा, किसी भी विचार के रूप में पता लगाता है?

+0

"अंग्रेजी" परिभाषित करें। अक्षरों के लिए केवल मामूली '/^[ए-जेए-जेड] * $ /' केवल "अंग्रेजी" से मेल खाता है। – Jon

+0

क्या आपका मतलब 'वास्तविक अंग्रेजी' है या क्या आपका मतलब है 'कांजी/काना से अधिक लैटिन वर्ण'? – Rup

उत्तर

17

इस प्रयास करें (कृपया ध्यान दें कि आपको mbstring php मॉड्यूल स्थापित करने की आवश्यकता है):

<?php 
    $string="で書くタッチイベント (フ"; 

    if(strlen($string) != mb_strlen($string, 'utf-8')) 
    { 
     echo "Please enter English words only:("; 
    } 
    else { 
     echo "OK, English Detected!"; 
    } 
?> 
+1

ऐसा नहीं लगता है काम कर रहा है ... http://ideone.com/obm95F –

+0

क्षमा करें, यह mb_strlen में utf-8 एन्कोड गायब था। अब काम करना चाहिए –

+0

बिल्कुल सही ... अच्छा काम ... –

0

आप चरित्र प्रकार से भाषा का पता नहीं लगा सकते हैं। और ऐसा करने के लिए कोई मूर्खतापूर्ण तरीके नहीं हैं।

किसी भी विधि के साथ, आप बस एक शिक्षित अनुमान कर रहे हैं। से: Detect language from string in PHP

नीचे दिए गए लेख के कुछ मामले में काम मिल सकता है हालांकि ..

http://papermashup.com/php-language-detection/

https://github.com/BruceJillis/PHP-Language-Detection

http://phpir.com/language-detection-with-n-grams/

आशा है कि यह मदद करता है ..

+1

क्या यह उत्तर कुछ अन्य प्रश्नों से कॉपी/पेस्ट नहीं किया गया है? – Jon

+0

आप लोग अपनी टिप्पणियों को कम क्यों करते हैं? यह बिल्कुल सच है ... – Chris

+0

@ क्रिस मैंने डाउनवोट नहीं किया, लेकिन टिप्पणियों को उत्तर के रूप में पोस्ट नहीं किया जाना चाहिए। इसके अलावा, अगर हिरेन का मानना ​​है कि इस सवाल का जवाब पहले से ही कहीं और दिया गया है, तो उसे ओपी को डुप्लिकेट के रूप में चिह्नित करना चाहिए। – Boaz

संबंधित मुद्दे