PHP Search and Replace Functions

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

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

PHP Search and Replace Functions: PHP हमें कुछ ऐसे Functions Provide करता है, जिनमें बिना किसी तरह के Regular Expression का प्रयोग किए हुए भी हम String Searching व Manipulation का काम कर सकते हैं। इनमें से कुछ बहुत ही उपयोगी Functions निम्नानुसार हैं:

substr() Function

इस Function का प्रयोग करके हम किसी String के किसी हिस्से यानी Sub-String को Return करवा सकते हैं। ये Function तीन Arguments लेता है और एक Sub-String Return करता है। इस Function क Syntax निम्नानुसार होता हैः

string substr(string $string, int $start, int $length)

पहले Parameter के रूप में हमें इस Function में उस String को Specify करना होता है, जिसमें से हमें Sub-String Return करना है। पहले Argument के रूप में हम Empty String Specify नहीं कर सकते। इस Parameter में कम से कम एक Character जरूर होना चाहिए।

दूसरे व तीसरे Parameter के आधार पर ये तय होता है String में से कहां से कहां तक की Sub-String Return होगी।

यदि दूसरे Parameter के रूप में Specified मान Positive हो, तो इस Parameter के मान से तीसरे Parameter में Specified मान के Index Number तक की String Return होती है।

यदि दूसरे Parameter के रूप में Specified मान Negative हो, तो इस Parameter के मान से तीसरे Parameter में Specified मान के Index Number तक की String Return पहले Argument में Specified String के Right Side से Return होती है, न कि Left Side से।

यदि पहले Argument के रूप में Specified String की Size दूसरे Parameter में Specified मान से छोटी हो, तो ये Function False Return करता है।

तीसरे Parameter के रूप में हम ये Specify करते हैं कि हमें दूसरे Parameter में Specified Character से कितने Characters की Length तक की Sub-String को Return करना है।

यदि तीसरे Parameter के रूप में Specified मान Negative हो, तो String के Right Side से कई Characters Omit हो जाते हैं। यदि तीसरे Argument में Specified Negative मान से दूसरे Parameter के Starting Position का मान Truncate हो जाए, तो कोई Sub-String Return नहीं होता, बल्कि False Return होता है। जबकि इसका मान 0 होने की स्थिति में Empty String, False या Null Return होता है।

यदि तीसरे Parameter को Specify न किया जाए, तो दूसरे Parameter में Specified मान से लेकर String के अन्त तक की पूरी Sub-String Return हो जाती है।

<?php
	$str = "Hello World";
	echo substr($str, 3);
?>

//Output
lo World

इस Program में substr() Function String की शुरूआत के तीन Character छोड कर String के अन्त तक की पूरी Sub-String को Return कर रहा है क्योंकि हमने तीसरे Parameter को Specify नहीं किया है।

<?php
	$str = "Hello World";
	echo substr($str, -3);
?>

//Output
rld

इस Program में हमने दूसरे Parameter को Negative Specify किया है इसलिए String के Right Side से Sub-String Return होता है।

चूंकि दूसरे Parameter के रूप में हमने एक Negative मान Specify किया है, इसलिए PHP $str String के Right Side से Left Side में तीसरे Character पर पहुंचता है और हमने तीसरे Parameter को Specify नहीं किया है, इसलिए इस तीसरे Character से String के अन्त तक की Sub-String Return करता है।

यानी उपरोक्त Statement का प्रयोग करके हम किसी String के Right Side से दूसरे Argument के रूप में Specified Number जितने Characters की Sub-String Return कर सकते हैं।

<?php
	$str = "Hello World";
	echo substr($str, 3, 6);
?>
//Output
lo Wor

इस Program में हमने दूसरे Parameter में 3 व तीसरे Parameter में 6 Specify किया है। परिणामस्वरूप PHP इस String में Left Side से तीन Character छोडकर चौथे Character पर पहुंचता है और चौथे Character से 6 Character आगे तक की String को Return कर देता है।

<?php
	$str = "Hello World";
	echo substr($str, -5, 4);
?>

//Output
   Worl

इस Program में दूसरे Argument के रूप में हमने -5 Specify किया है, परिणामस्वरूप PHP String की Right Side से Left Side की ओर पांचवें Character ‘W’ पर पहुंचता है और इस Character से कुल 4 Character Sub-String के रूप में Return करता है, क्योंकि तीसरे Argument के रूप में हमने 4 Specify किया है।

<?php
	$str = "Hello World";
	echo substr($str, 0, -4);
?>

//Output
Hello W

इस Program में हमने तीसरे Argument को -4 Specify किया है। परिणामस्वरूप PHP इस String के Right Side के चार Characters को Trunk कर देता है और दूसरे Argument के रूप में 0 Specify करने की वजह से String की शुरूआत से लेकर String के End से चार Character पहले तक की Sub-String को Return करता है।

substr_count() Function

इस Function का प्रयोग करके हम इस बात का पता लगा सकते हैं कि किसी String में कोई Sub-String कितनी बार Appear हुई है। इस Function का Syntax निम्नानुसार होता हैः

int substr_count(string $string, string $substring, int $offset = 0, int $length)

ये Function चार Parameters Accept करता है। पहले Parameter के रूप में हमें उस String को Specify करना होता है, जिसमें हम Second Parameter में Specified Sub-String की संख्‍या को Count करना चाहते हैं।

तीसरे Parameter के रूप में हमें Main String की उस Position को Specify करते हैं, जहां से Searching Start होगी और चौथे Parameter के रूप में हम Search की जाने वाली String की अन्तिम Limit Specify करते हैं।

<?php
	$str = "This is a test string for is sub-string.";
	echo "\n". substr_count($str, "is" );				//Output: 3
	echo "\n". substr_count($str, "is",7 );				//Output: 1
	echo "\n". substr_count($str, "is",0,10 );			//Output: 2
?>

जैसाकि हम उपरोक्त Program की String में देख सकते हैं कि इसमें “is” तीन बार है। जब हम पहली बार substr_count() Function को Use करते हैं, तो केवल दो ही Parameter Specify करते हैं, इसलिए PHP पूरी String में Substring कुल कितनी बार Appear हुआ है, वह संख्‍या Return कर देता है।

दूसरी बार इस Function को Use करते समय हमने तीसरे Parameter को 7 Specify कर दिया है। इसलिए PHP Substring की Searching सातवे Character से करना शुरू करता है। परिणामस्वरूप उसे केवल एक ही बार “is” प्राप्त होता है।

तीसरी बार इस Function को Use करते समय हमने substr_count() Function में तीसरे व चौथे दोनों Parameters Specify किए हैं। जिससे PHP String के पहले Character से 10वें Character के बीच ही “is” Substring को Search करता है और उसे केवल दो बार ये Substring मिलता है।

substr_replace() Function

इस Function का प्रयोग करके हम किसी String की किसी Substring को नई Substring से Replace कर सकते हैं। इस Function का Syntax निम्नानुसार होता हैः

mixed substr_replace(mixed $string, mixed $replacement, mixed $start, mixed $length)

इस Function के पहले Parameter के रूप में हमें Main String Specify करनी होती है, जबकि दूसरे Parameter के रूप में हमें उस String को Specify करना होता है, जिसे हम Replace करना चाहते हैं। तीसरे Parameter के रूप में हमें Replace की जाने वाली String की Position व चौथे Parameter के रूप में String की Length को Specify करना होता है।

पहले Argument के रूप में हम Strings का एक Array भी Specify कर सकते हैं, लेकिन उस स्थिति में Array के हर Element पर Stored String में इस Function द्वारा Specified Position पर Substring को Replace कर दिया जाएगा।

हम इस Function के पहले व दूसरे दोनों Parameters को Array के रूप में Specify कर सकते हैं। जब हम दोनों Parameters को Array के रूप में Specify करते हैं, तब Main Array के हर Element की String में Substring Array के हर Element की Substring Replace होती है।

तीसरे Argument के रूप में यदि हम Positive मान Specify करते हैं, तो PHP String के Left Side से Parameter में Specified Number जितने Characters छोडकर String Replacement शुरू करता है।

तीसरे Argument के रूप में यदि हम Negative मान Specify करते हैं, तो PHP String के Right Side से Parameter में Specified Number के Characters पर पहुंचता है और String के End की ओर Replacement शुरू करता है।

यदि चौथे Argument के रूप में एक Positive Number हो, तो ये Replace की जाने वाली String की Length को Specify करता है।

यदि चौथे Argument के रूप में एक Negative Number हो, तो ये String के Right Side के उस Character की संख्‍या को Represent करता है, जहां से String Replace होना रूक जाएगा।

यदि हम चौथे Argument को Specify न करें, तो इसका Default मान Replace होने वाली String की Length के बराबर होता है।

जबकि यदि चौथे Argument में 0 Specified हो तो String Replace होने की बजाय तीसरे Argument में Specified Character Position पर Insert हो जाती है।

विभिन्न Arguments के आधार पर Operation Perform होने के बाद ये Function Modified String Return करता है। यदि String के स्थान पर Array का प्रयोग किया गया हो, तो ये Function Modified Array Return करता है।

<?php
	$str = "This is a test string for is sub-string.";
	echo "\n". substr_replace($str, "Hello World",0 );
?>

//Output
	“Hello World”

इस Program में हमने $str की Main String को “Hello World” Substring से Replace कर दिया है। क्योंकि हमने तीसरे Parameter के रूप में 0 Specify किया है, इसलिए Replacement String Main String के Index Number 0 यानी Main String की शुरूआत से Replacement शुरू करता है। परिणामस्वरूप Main String, Replacement String से Replace हो जाती है।

<?php
	$str = "This is a test string for is sub-string.";
	echo "\n". substr_replace($str, "Hello World",10 );
?>

//Output
	This is a Hello World

इस Program में हमने तीसरे Parameter के रूप में 10 Specify किया है, इसलिए Replacement String, Main String के Index Number 10 यानी Main String की शुरूआत के 10 Character छोडकर 11वें Character से Replacement शुरू करता है। परिणामस्वरूप Main String, के 10 Characters के बाद की String पर Replacement String से Replace हो जाती है।

<?php
	$str = "This is a test string for is sub-string.";
	echo "\n". substr_replace($str, "Hello World",10 );
?>

//Output
	This is a test string for is sHello World

इस Program में हमने तीसरे Parameter के रूप में -10 Specify किया है, इसलिए Replacement String, Main String के Right Side से Left Side की ओर 10 वें Characters पर पहुंचता है और इस 10वें Character के बाद की String पर Replacement String Replace हो जाती है।

<?php
	$str = "This is a test string for is sub-string.";
	echo "\n". substr_replace($str, "Hello World",0,0 );
?>

//Output
	Hello WorldThis is a test string for is sub-string.

इस Program में हमने तीसरे व चौथे Parameter के रूप में 0 Specify किया है, इसलिए Replacement String, Main String के Left Side की ओर से 0 Character छोडकर यानी String की शुरूआत में Replacement String को Insert कर देता है क्योंकि चौथे Parameter के रूप में हमने 0 Specify किया है, इसलिए एक भी Character Replace नहीं होता।

<?php
	$str = "This is a test string for is sub-string.";
	echo "\n". substr_replace($str, "Hello World",5,10 );
?>

//Output
	This Hello Worldstring for is sub-string.

इस Program में हमने तीसरे Parameter के रूप में 5 व चौथे Parameter के रूप में 10 Specify किया है, इसलिए PHP, Main String के Left Side की ओर से 5 Character छोडकर चौथे Parameter में Specified 10 Characters को Replacement String से Replace नहीं होता।

<?php
	$str = "This is a test string for is sub-string.";
	echo "\n". substr_replace($str, "Hello World",5,-10 );
?>

//Output
	This Hello Worldub-string.

इस Program में हमने तीसरे Parameter के रूप में 5 व चौथे Parameter के रूप में -10 Specify किया है, इसलिए PHP, Main String के Right Side से Left Side की ओर से 10 Character छोडकर तीसरे Parameter में Specified 5वें Character से आगे की पूरी String को Replacement String से Replace कर देता है।

<?php
	$str = array('Krishna', 'Govind', 'Shyam');
	$rep = array('Jai Shree ', 'Hare ', 'Radhe ' );
	print_r(substr_replace($str, $rep,0,0 ));
?>

//Output
Array
(
    [0] => Jai Shree Krishna
    [1] => Hare Govind
    [2] => Radhe Shyam
)

इस Program के Output को देखकर ही आप इस Program की Working को समझ गए होंगे। इस Program में Main Array के हर Element पर Places String के साथ दूसरे Array के हर Element पर स्थित String को substr_replace() Function द्वारा Modify किया गया है।

जब हम इस तरह से Array को Use करते हैं तो Main Array में Elements की संख्‍या यदि Replacement Array की तुलना में ज्यादा हो, तो Replacement Array के Elements तो Main Array के Elements को Replace करते हैं, लेकिन Main Array के जो Extra Elements बचते हैं, उनकी String Replace नहीं होती यानी वे Strings ज्यों की त्यों Return हो जाती हैं।

हम इस Function के दूसरे, तीसरे व चौथे Parameters को उपयुक्त तरीके से Specify करके String में नई Substring को Insert करने, Replace करने अथवा Main String की किसी Substring को Delete करने के लिए Use कर सकते हैं।

जब हम Main String से किसी Substring को Delete करना चाहते हैं, तब हमें Replacement String के रूप में एक Empty String Specify करना होता है। जैसेः

<?php
	$str = "This is a test string for is sub-string.";
	echo "\n". substr_replace($str, "",15,10 );
?>

//Output
	This is a test  is sub-string.

इस Program में हमने Replacement String को Specify नहीं किया है, इसलिए ये Function Main String के Left Side से 15 Characters छोडकर अगले 10 Characters को Empty String से Replace कर देता है यानी अगले 10 Characters को Delete कर देता है।

str_replace() Function

ये Function किसी String में स्थित सभी Search Strings को नई Replacement String से Replace कर देता है। इस Function का Syntax निम्नानुसार होता हैः

mixed str_replace(mixed $search, mixed $replace, mixed $subject, int &$count)

ये Function चार Parameters Accept करता है और Return Value के रूप में एक String या Array Return करता है, जिसमें Specified Subject में Search की गई सभी Search String से Replace होने वाली Replace String की Information होती है।

हम $search$replace Parameters के रूप में Array का प्रयोग कर सकते हैं। जब हम यहां पर Array का प्रयोग करते हैं, तब इन Arrays की एक-एक Value को Search व Replace Value के रूप में Use किया जाता है।

यदि $search Array की तुलना में $replace Array में कम Values हों, तो बाकी बचे हुए Replacements के लिए Default रूप से एक Empty String का प्रयोग होता है।

यदि $search व $replace दोनों ही Arrays हों, तो उनके Elements First से Last की ओर Process होते हैं।

यदि $search एक Array हो और $replace एक String हो, तो ये Replacement String Array के सभी Search Elements के लिए Use होती है।

इस Function में $search के रूप में हमें वह String Specify करनी होती है, जिसे हम $subject में Search करना चाहते हैं।

इस Function में $replace के रूप में हमें वह String Specify करनी होती है, जिससे हम $subject में Search की गई Searched Strings को Replace करना चाहते हैं।

इस Function में $subject वह String या Array होता है, जिसमें $search को Search करना होता है और $replace को Replace करना होता है।

$count में हम यदि कोई मान Specify करते हैं, तो वह मान इस बात को तय करता है कि कुल कितने Replacements Perform होने हैं।

ये Function Return Value के रूप में Replaces Values की String या Array Return करता है।

str_ireplace() Function

str_replace() Function Case Sensitive तरीके से Searching Operation को Perform करता है। इसलिए यदि Case Insensitive तरीके से Searching व Replacing Operation Perform करना हो, तो str_replace() Function के स्थान पर str_ireplace() Function को Use किया जाना चाहिए।

इन दोनों Functions में बस यही एक अन्तर है कि एक Case Sensitive है जबकि दूसरे Case-Insensitive है।

<?php
	$str = "This is a test string for is sub-string.";
	echo "\n". str_replace("is", "was", $str);
?>

//Output
	Thwas was a test string for was sub-string.

जैसाकि उपरोक्त Program द्वारा हम समझ सकते हैं कि हमने $str String में स्थित हर “is” शब्द को “was” शब्द से Replace करने के लिए str_replace() Function को Use किया है।

<?php
	$str = array('Raj Kumar Santoshi','Devanand','Bill Clinton');
	$rep = array('ee','aa','oo');
	$ser = array('a','a','i');

	print_r(str_replace($ser, $rep, $str));
?>

//Output
Array
(
    [0] => Reej Kumeer Seentoshoo
    [1] => Deveeneend
    [2] => Booll Cloonton
)

उपरोक्त Program द्वारा आप समझ सकते हैं कि हम इस Function में Array का प्रयोग किस तरह से कर सकते हैं।

strstr() Function

ये Function Argument के रूप में तीन Parameters Accept करता है। पहले दो Parameters Compulsory होते हैं, जबकि तीसरा Parameter Optional होता है, जिसका Default मान False होता है। इस Function का Syntax निम्नानुसार होता हैः

string strstr(string $haystack, mixed $needle, bool $before_needle = false)

ये Function दूसरे Parameter के रूप में Specify किए गए $needle को पहले Parameter के रूप में Specify किए गए String Type के $haystack में Search करता है और तीसरे Parameter के आधार पर दूसरे Parameter में Specified $needle से पहले या बाद की String को Return करता है।

यदि तीसरे Parameter का मान true हो, तो ये Function $needle से बाद की String Return करता है, जबकि तीसरे Parameter का मान false होने की स्थिति में $needle से पहले की String Return करता है।

चूंकि तीसरे Parameter का Default मान False होता है, इसलिए यदि हम तीसरे Parameter को Specify न करें, तो भी हमें $needle से पहले की String ही Return होती है।

यदि Specified $needle, $haystack में Available न हो, तो ये Function False Return करता है। इस Function को हम निम्नानुसार Use कर सकते हैं:

<?php
	$email  = 'bccfalna@gmail.com';
	echo $email ."\n";
	$domain = strstr($email, '@');
	echo $domain."\n"; 				// prints @gmail.com
	
	$user = strstr($email, '@', true); 
	echo $user; 					// prints bccfalna
?>

//Output
@gmail.com
bccfalna

strchr() Function

ये Function strstr() Function का Alias है। इसलिए strstr() Function के स्थान पर हम इस Function को भी Use कर सकते हैं।

strrchr() Function

ये Function $haystack से उस String Portion को Return करता है, जो कि $needle के Last Occurrence से $haystack के अन्त तक होता है।

इस Function में यदि $needle में एक से ज्यादा Characters हों, तब भी $needle का केवल पहला Character की Use होता है, जबकि strstr() Function में $needle का पूरा String Searching में Participate करता है।

यदि $needle एक Valid String न हो, तो $needle एक Integer Value में Convert हो जाता है।

ये Function Successful होने पर $haystack की String के एक Portion को Return करता है, जबकि Fail होने पर False Return करता है।

<?php
	$text = "Line 1\nLine 2\nLine 3";
	echo strrchr($text, "\n");
?>

//Output
   Line 3

जैसाकि हम Output में देख सकते हैं, ये Function $text के अन्तिम “\n” Occurrence के बाद का पूरा Content Return कर रहा है।

चूंकि इस Function में $needle एक String न हो, तो Specify किए गए Number से Associated ASCII Value को ये Function $needle के रूप में Use कर लेता है इसलिए यदि हम चाहें तो उपरोक्त Program को निम्नानुसार तरीके से भी लिख सकते हैं:

<?php
	$text = "Line 1\nLine 2\nLine 3";
	echo strrchr($text, 10);
?>

//Output
   Line 3

इस Program में हमने $needle के मान के रूप में Integer Value 10 Specify किया है। मान 10 ASCII Code के रूप में New Line Symbol को ही Represent करता है। परिणामस्वरूप हमारे Output पर किसी तरह का कोई प्रभाव नहीं पडता और हमें पिछले Program जैसा ही Output प्राप्त होता है।

stristr() Function

ये Function Argument Exactly strstr() Function की तरह ही काम करता है, अन्तर केवल इतना है कि ये $needle को Case Insensitive तरीके से Search करता है, जबकि strstr() Function $needle को Case Sensitive तरीके से Search करता है।

strpos() Function

ये Function भी Argument के रूप में तीन Parameters Accept करता है। पहले दो Parameters Compulsory होते हैं, जबकि तीसरा Parameter Optional होता है, जिसका Default मान False होता है। इस Function का Syntax निम्नानुसार होता हैः

string strstr(string $haystack, mixed $needle, bool $before_needle = false)

ये Function दूसरे Parameter के रूप में Specify किए गए $needle को पहले Parameter के रूप में Specify किए गए String Type के $haystack में Search करता है। यदि $needle एक String न हो तो Function के Run होते समय ये एक Integer Value में Convert हो जाता है।

यदि $needle, $haystack में मिल जाता है, तो $needle के पहले Occurrence की Position Return Value के रूप में Return होती है।

तीसरा Parameter ये तय करता है कि $needle को $haystack में कितने Characters छोडकर Search किया जाएगा। Default रूप से इसका मान 0 होता है, जो ये Specify करता है कि $needle को $haystack में 0 Character छोडकर यानी $haystack की शुरूआत के First Character से Search किया जाएगा। ध्यान रखने वाली बात ये है कि तीसरे Parameter का मान Negative नहीं हो सकता।

तीसरे Parameter के आधार पर ये Function $needle के First Occurrence की Position को Return करता है। यदि $haystack में $needle नहीं मिलता, तो ये Function False Return करता है।

ये Function Boolean False भी Return कर सकता है और Non-Boolean Value भी Return कर सकता है, जो कि Boolean False में Convert हो सकती है। इसलिए Return Value को सही तरीके से Test करने के लिए === या !== Operators को Use करना चाहिए।

<?php
	$mystring = 'kuldeep';
	$findme   = 'dee';
	$pos = strpos($mystring, $findme);
	
	if ($pos === false) {
	    echo "The string '$findme' was not found in the string '$mystring'";
	} else {
	    echo "The string '$findme' was found in the string '$mystring'";
	    echo " and exists at position $pos";
	}
?>

//Output
The string 'dee' was found in the string 'kuldeep' and exists at position 3

हमारी Search की जा रही String मुख्‍य String में तीन Characters छोडकर स्थित है, इसलिए Output में हमें Position Number 3 प्राप्त हो रहा है, क्योंकि String में Characters की Positioning Index Number 0 से होती है।

<?php
	$mystring = 'kuldeep Kuldeep;
	$findme   = 'dee';
	$pos = strpos($mystring, $findme, 7);
	
	if ($pos === false) {
	    echo "The string '$findme' was not found in the string '$mystring'";
	} else {
	    echo "The string '$findme' was found in the string '$mystring'";
	    echo " and exists at position $pos";
	}
?>

//Output
The string 'dee' was found in the string 'kuldeep' and exists at position 11

तीसरे Parameter का प्रयोग करके हम ये तय कर सकते हैं कि हमें $needle को $haystack में कहां से Search करना शुरू करना है। परिणामस्वरूप इस Program में हमें “dee” String Index Number 3 पर नहीं बल्कि 11 पर प्राप्त हो रही है क्योंकि हमारी Searching Index Number 7 से शुरू हो रही है।

stripos() Function

ये Function Exactly strpos() Function की तरह काम करता है। दोनों Functions में अन्तर केवल इतना है कि strpos() Function $needle को Case Sensitive तरीके से Search करता है, जबकि stripos() Function Case Insensitive तरीके से।

strrpos() Function

ये Function Exactly strpos() Function की तरह काम करता है। लेकिन ये Function $haystack में $needle के First नहीं बल्कि Last Occurrence की Position को Return करता है।

strripos() Function

ये Function Exactly strrpos() Function की तरह काम करता है। अन्तर केवल इतना है कि strrpos() Function $needle को Case Sensitive तरीके से Search करता है, जबकि strripos() Function Case Insensitive तरीके से।

strtok() Function

ये एक ऐसा Function है जो Predefined Tokens या Character List के आधार पर किसी String से विभिन्न Sub-Strings को Return करता है। इस Function का Syntax निम्नानुसार होता हैः

string strtok(string $str, string $token)
string strtok(string $token)

ये Function किसी String $str को कई छोटी-छोटी Substrings में Split कर देता है और हर Sub-String किसी एक Delimiter से Separate होता है जबकि Delimiter के रूप में हम कई Characters की List Specify कर सकते हैं, जहां हर Character एक Token को Represent करता है। इसके काम करने की प्रक्रिया को हम एक उदाहरण द्वारा समझने की कोशिश करते हैं।

<?php
	$str = "This is a test string for is sub-string.";
	
	$token = strtok($str, " ");
	while($token != false){
		echo $token . "\n";
		$token = strtok(" ");
	}
?>

//Output
This
is
a
test
string
for
is
sub-string.

जैसाकि उपरोक्त Program के Output से हम समझ सकते हैं कि ये Program String के हर शब्द को अलग-अलग करने के लिए Space को Token की तरह Use कर रहा है।

इस Function को हमें हमेंशा दो हिस्सों में Use करना पडता है। सबसे पहले हमें इस Function को Use करके अपनी String के लिए First Token Return करना होता है। जब इस Function को पहली बार Use करते हैं, तब ये Function दोनों Argument Accept करता है, जबकि अगली बार जब हम इसे Use करते हैं, तब हमें केवल Token को ही Use करना होता है।

Token के रूप में हम किसी भी Character को Use कर सकते हैं। साथ ही हम एक से ज्यादा Characters को भी Token के रूप में Specify कर सकते हैं। जब ये Function Execute होता है, तब Token के रूप में Specified हर Character को Token के रूप में Use करता हुआ String से हर Token के लिए एक या एक से ज्यादा Sub-Strings Return करता है।

हम Token के रूप में चाहे जितने Characters Specify करें, जब ये Function Run होता है, तब ये Left to Right ही Run होता है। परिणामस्वरूप Token के रूप में Specified हर Token के लिए अलग-अलग Substring Return हो जाता है और जो Substring Return हो जाती है, किसी दूसरे Token के लिए वह Substring फिर से Return नहीं होती, क्योंकि Function Left to Right चलते हुए उस Substring से आगे बढ जाता है।

इस Function को और बेहतर तरीके से समझने के लिए हम निम्नानुसार एक और Program बना सकते हैं, जिसमें एक से ज्यादा Tokens का प्रयोग किया गया हैः

<?php
	$info = "Kuldeep Mishra.:bccflana@gmail.com|Falna, Rajasthan";
	
	//Delimiters include colon (:), vertical bar (|), and comma (,)
	$tokens = ",|:";

	$tokenized = strtok($info, $tokens);
	
	//Print out each element in the $tokenized array
	while ($tokenized) {
		echo "Element = $tokenized \n";
		
		//Don't include the first argument in subsequent calls.
		$tokenized = strtok($tokens);
	}
?>

//Output
Element = Kuldeep Mishra.
Element = bccflana@gmail.com
Element = Falna
Element =  Rajasthan

इस Function को Use करते समय हमें Loop का प्रयोग इसीलिए करना जरूरी होता है क्योंकि ये Function किसी Token के आधार पर एक बार में केवल एक ही Substring Return करता है।

इसलिए किसी अन्य Token या समान Token के लिए भी अगली Substring प्राप्त करने के लिए हमें फिर से इस Function को Call करना होता है।

लेकिन जब हम अगली बार इस Function को Call करते हैं, तो उस समय हमें केवल Token को ही Specify करना होता है, String को नहीं। फलस्वरूप यही बेहतर होता है कि हम जब दूसरी बार इस Function को Use करें, तो उसे एक Loop के अन्दर ही Use कर दें।

सामान्यतः जब String में कोई Substring नहीं बचती, तब ये Function False Return करता है। लेकिन ये Function हमेंशा Boolean False ही Return करे, ये जरूरी नहीं होता। इसलिए इस Function की Return Value को false से Compare करते समय हमारे लिए === या !== को Use करना ज्यादा बेहतर होता है न कि == या != को।

PHP Hexadecimal Binary Conversion
PHP String Functions

******

ये पोस्‍ट Useful लगा हो, तो Like कर दीजिए।

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

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW DOWNLOAD READ ONLINE

Download All Hindi EBooks

सभी हिन्दी EBooks C, C++, Java, C#, ASP.NET, Oracle, Data Structure, VB6, PHP, HTML5, JavaScript, jQuery, WordPress, etc... के DOWNLOAD LINKS प्राप्‍त करें, अपने EMail पर।

Register करके Login करें। इस Popup से छुटकारा पाएें।