आर्टिकल https://medium.com/@hafiqiqmal93/normalising-fancy-text-to-normal-text-in-laravel-7d9ed56d5a78 से उत्पन्न हुआ है
उपयोगकर्ताओं का टेक्स्ट इनपुट बिल्कुल भी दिलचस्प नहीं है। स्मार्टफोन में यूनिकोड के आगमन के साथ, उपयोगकर्ताओं के पास अब विभिन्न शैलियों और प्रारूपों में टेक्स्ट इनपुट करने की विलासिता (और कभी-कभी सनक) है। इमोजी से लेकर डायक्रिटिक्स, संयुक्ताक्षर से लेकर पूर्ण-चौड़ाई वाले वर्णों तक, "फैंसी टेक्स्ट" की सीमा सिस्टम द्वारा समझने में बेहद भ्रमित करने वाली या मुश्किल हो सकती है। देखने में आकर्षक होते हुए भी, ये पाठ विविधताएं सिस्टम के लिए विशेष रूप से डेटा स्थिरता, खोज योग्यता और उपयोगकर्ता अनुभव के मामले में एक महत्वपूर्ण चुनौती पेश करती हैं।
यहां फैंसी टेक्स्ट के उदाहरण दिए गए हैं:-
???????? ???? ? ??? ?????????? ????? ?? ??? ????? ??? ?? ?????????? ?? ??????? ???? ?????? ??? ??? ???? ????? ??? ? ?? ???? ?? ????? ??? ??????? ?? ???? ???? ?? ??? ?? ????? ??? ???????? ?????? ????? ?????, ?? ???? ??????? ???? ????..????? ?? ??? ????. ??? ?????? ???? ?? ???? ????? ?????????
इटैलिक अक्षर जैसा दिखता है लेकिन यह इटैलिक नहीं है। यह वास्तव में गणितीय अल्फ़ान्यूमेरिक प्रतीकों से संबंधित है।
खैर, एक बहुत ही स्पष्ट समस्या यह है कि PHP प्राप्त होने पर JSON विकृत UTF-8 वर्णों को एन्कोड नहीं कर सकता है। वेब डेवलपमेंट करने के आधुनिक तरीके में, जहां एपीआई और फ्रंटएंड फ्रेमवर्क डेटा ट्रांसपोर्ट करने के लिए JSON का उपयोग करते हैं, यह एक समस्या है। यदि गलत व्यवहार किया जाता है, तो ऐसे विकृत वर्णों के परिणामस्वरूप डेटा भ्रष्टाचार, क्रैश, या नाराज उपयोगकर्ता होंगे।
हमारा लक्ष्य सरल है:- ऐसा समाधान लेकर आए जो हर फैंसी टेक्स्ट को सामान्य पठनीय टेक्स्ट में बदल देगा।
सामान्यीकरण प्रक्रिया को समझने के लिए सामान्यीकरण प्रपत्र महत्वपूर्ण हैं। वे विभिन्न भाषाई और तकनीकी आवश्यकताओं को पूरा करते हैं। उदाहरण के लिए, एनएफसी फॉर्म वर्णों को उनके रचित रूपों में जोड़ता है, जबकि एनएफडी इसके विपरीत करता है, रचित वर्णों को उनके घटक भागों में विघटित करता है। एनएफकेसी और एनएफकेडी फॉर्म संगतता वर्णों पर विचार करते हुए आगे बढ़ते हैं - वर्णों की विविधताओं को एक विहित रूप में मोड़ना। ये फ़ॉर्म सुनिश्चित करते हैं कि पाठ की तुलना, खोज और भंडारण सुसंगत और विश्वसनीय हैं।
प्रदान किया गया कोड स्निपेट सरलता और दक्षता के साथ जटिल समस्याओं को हल करने के लिए PHP दृष्टिकोण का एक उत्कृष्ट उदाहरण है। आइए इस समाधान का विश्लेषण करें, इसके घटकों को समझें और देखें कि यह कैसे निर्बाध रूप से एकीकृत होता है:-
public static function normalizeText($text): ?string { if (!$text) { return null; } $intl = [ \Normalizer::FORM_C, \Normalizer::FORM_D, \Normalizer::NFD, \Normalizer::FORM_KC, \Normalizer::NFKC, \Normalizer::FORM_KC_CF, \Normalizer::FORM_KD, \Normalizer::NFKD, \Normalizer::NFC, \Normalizer::NFKC_CF, ]; foreach ($intl as $form) { if (!\Normalizer::isNormalized($text, $form)) { return \Normalizer::normalize($text, $form); } } return $text; }
उपयोग सरल है:-
$normalText = Utils::normalizeText($YOUR_FANCY_STRING)
उपयोग को आसान बनाने के लिए आप हेल्पर फ़ंक्शन के अंदर पंजीकरण कर सकते हैं। उदाहरण के लिए:-
if ( ! function_exists('normalize_text')) { function normalize_text(string $text): string { return Utils::normalizeText($text) } } // USAGE $normalText = normalize_text($YOUR_FANCY_STRING)
इसके मूल में, यह फ़ंक्शन सामान्यीकरण को संबोधित करने के लिए PHP के **Normalizer** वर्ग-अंतर्राष्ट्रीयकरण (intl) एक्सटेंशन का एक हिस्सा-का लाभ उठाता है। **नॉर्मलाइज़र** वर्ग कई सामान्यीकरण फॉर्म प्रदान करता है, प्रत्येक अलग-अलग सामान्यीकरण आवश्यकताओं के अनुरूप होता है। यह फ़ंक्शन इन फॉर्मों के माध्यम से पुनरावृत्त होता है, यह जाँचता है कि **isNormalized** फ़ंक्शन का उपयोग करके टेक्स्ट पहले से ही किसी दिए गए फॉर्म में सामान्यीकृत है या नहीं। यदि नहीं, तो यह टेक्स्ट को उस रूप में सामान्यीकृत कर देता है और सामान्यीकृत स्ट्रिंग लौटा देता है।
हालांकि फैंसी टेक्स्ट उपयोगकर्ता इनपुट में दृश्य अपील जोड़ सकता है, यह डेटा प्रोसेसिंग और सिस्टम इंटरऑपरेबिलिटी के लिए महत्वपूर्ण चुनौतियां पैदा करता है। हालाँकि, PHP के नॉर्मलाइज़र वर्ग को अपनाने और सामान्यीकरण रूपों के कार्यान्वयन के साथ, डेवलपर्स इन चुनौतियों पर काबू पा सकते हैं और यह सुनिश्चित कर सकते हैं कि उनके एप्लिकेशन विविध टेक्स्ट इनपुट के सामने डेटा स्थिरता और विश्वसनीयता बनाए रखें।
क्या आपके पास अपनी परियोजनाओं में फैंसी टेक्स्ट को संभालने से संबंधित कोई अनुभव या चुनौतियां हैं? आप वर्तमान में ऐसे मुद्दों को कैसे संबोधित करते हैं, और क्या आप PHP के नॉर्मलाइज़र क्लास को अपने वर्कफ़्लो में उपयोगी पाते हैं? आइए बातचीत जारी रखें और आधुनिक वेब विकास की जटिलताओं से निपटने में एक-दूसरे की मदद करने के लिए अपनी अंतर्दृष्टि साझा करें। ??
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3