PHP String Compare Functions: PHP हमें कई ऐसे Functions Provide करता है, जिनका प्रयोग हम दो Strings को आपस में Compare करने के लिए कर सकते हैं। इन Comparision Functions में से कुछ Functions बहुत ज्यादा उपयोग में आते हैं, जो कि निम्नानुसार हैं:
strcmp() Function
ये Function दो Strings को आपस में Binary-Safe Case Sensitive तरीके से Compare करता है। ये Function आपस में Compare की जाने वाली दोनों Strings को Argument के रूप में Accept करता है और दोनों Strings के एक समान होने की स्थिति में 0 Return करता है जबकि यदि दोनों Strings एक समान न हों, तो ये Function -1 अथवा 1 Return करता है।
सामान्यतः विभिन्न Web Sites में Login System होता है, जहां User Web Site पर Login करने के बाद उस Web Site के Hidden Resources को Access करने में सक्षम हो पाता है।
जब User Login करना चाहता है, तब वह Web Site पर अपना Username व Password Specify करता है। इस Username व Password को Web Server पर इस बात के लिए Check किया जाता है कि User वास्तव में Registered User है या नहीं।
यदि User वास्तव में Registered User होता है, तो उसका Username व Password Web Server के Database पर Stored Username व Password से Exactly Match होता है।
इस बात को Check करने के लिए कि User ने सही Username व Password Specify किया है या नहीं, हम इस Function निम्नानुसार Use कर सकते हैं:
<?php $dbUser = "username"; $formUser = "username"; $dbPwd = "supersecret"; $formPwd = "Supersecret"; if (strcmp($dbPwd, $formPwd) == 0 AND strcmp($dbUser, $formUser) == 0) echo "Login Correctly"; else echo "Invalid username or password!"; ?> //Output Invalid username or password!
जब हम strcmp() Function को Use करते हैं, तब ये Function Case Sensitive तरीके से Strings का Comparision करता है, इसलिए ये जरूरी होता है कि Strings Exactly एक दूसरे से Match करें।
इसीलिए हम उपरोक्त Output में देख सकते हैं कि हालांकि दोनों ही Passwords समान हैं, फिर भी केवल “supersecret” व “Supersecret” के एक Character के Mismatch होने की वजह से Comparision Fail हो रहा है।
strcasecmp() Function
ये Function Exactly strcmp() Function की तरह ही काम करता है, लेकिन ये Function Comparision करते समय Case-Insensitive होता हैं परिणामस्वरूप यदि हम हमारे पिछले Program में strcmp() Function के स्थान पर strcasecmp() Function को Use कर लें, तो हमारे पिछले Program की तुलना में इस Program का Output Exactly अलग होता है।
<?php $dbUser = "username"; $formUser = "username"; $dbPwd = "supersecret"; $formPwd = "Supersecret"; if (strcasecmp($dbPwd, $formPwd) == 0 AND strcasecmp($dbUser, $formUser) == 0) echo "Login Correctly."; else echo "Invalid username or password!"; ?> //Output Login Correctly.
strnatcmp() Function
ये Function भी Argument के रूप में दो Strings को Accept करता है और Return Value के रूप में एक Integer Value Return करता है। यदि Return Value का मान 0 हो, तो दोनों Compare होने वाली Strings एक समान होती हैं जबकि 0 के अलावा कोई भी मान होने का मतलब है कि Compare होने वाली दोनो Strings एक समान नहीं हैं।
इस Function की विशेषता ये है कि ये Function Alphanumeric Order में Natural तरीके से Comparision करता है। Natural Ordering वह तरीका होता है, जिसमें हम Human Beings Comparision करते हैं। ये Function Case Sensitive तरीके से Comparision Perform करता है। इस Function को हम निम्नानुसार Use कर सकते हैं:
<?php $arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png"); echo "Standard string comparison\n"; usort($arr1, "strcmp"); print_r($arr1); echo "\nNatural order string comparison\n"; usort($arr2, "strnatcmp"); print_r($arr2); ?> //Output Array ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png ) Natural order string comparison Array ( [0] => img1.png [1] => img2.png [2] => img10.png [3] => img12.png )
Program का Output देखकर ही हम समझ सकते हैं कि strcmp() व strnatcmp() दोनों Functions के Comparision में क्या अन्तर है। उपरोक्त Program में हमने usort() Function के दूसरे Parameter के रूप में एक Callback Function को Specify किया है।
चूंकि strcmp() व strnatcmp() दोनों ही Functions PHP के Core में ही Defined हैं, इसलिए usort() Function के दूसरे Parameter के रूप में हम इन Functions को Directly उनका नाम Specify करके Use कर रहे हैं। हमें इन Functions को अलग से Define करने की या किसी PHP File को Current Script में Include करने की जरूरत नहीं है।
strnatcasecmp() Function
ये Function Exactly strnatcmp() Function की तरह काम करता है। अन्तर केवल इतना है कि strnatcmp() Function Compare होने वाली दोनों Strings को Case Sensitive तरीके से Compare करता है, जबकि ये Function Case Insensitive तरीके से Comparision करता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF