PHP String Compare – Functions in PHP

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 पर अपना UsernamePassword Specify करता है। इस Username व Password को Web Server पर इस बात के लिए Check किया जाता है कि User वास्तव में Registered User है या नहीं।

यदि User वास्तव में Registered User होता है, तो उसका UsernamePassword Web Server के Database पर Stored UsernamePassword से Exactly Match होता है।

इस बात को Check करने के लिए कि User ने सही UsernamePassword 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 करता है।

PHP in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW GET DEMO REVIEWS