
File Navigation PHP Functions – जब हम किसी File में अपने किसी Data को Store करते हैं, तो जरूरत पडने पर हमें उस File में Stored विभिन्न प्रकार के Data पर Move या Navigation करने की जरूरत पडती है।
उदाहरण के लिए जब हम User की Registration Information को किसी subscribers.txt नाम की File में Store करके रखते हैं, तो जैसे-जैसे Subscribers की संख्या बढती जाती है, हमें अलग-अलग Users की Information को File में Scan करने की जरूरत पडती है।
क्योंकि जब कोई Registered User हमारी Web Site पर Login करना चाहता है, तब उसके Login Form पर Specify किए गए Username व Password को File में Stored Username व Password से Compare करवाने की जरूरत पडती है, ताकि हमारी Web Site इस बात का Confirmation कर सके कि Login करने वाला User वास्तव में पहले से Registered है।
चूंकि File में बहुत सारे Users की Registration Information हो सकती है, इसलिए हर User की Registration Information को Login Form में Filled Information से Compare करवाने से Login Process काफी धीमा हो जाएगा।
इसलिए पूरी File की Registration Information को Compare करवाने के बजाय File में सीधे ही उस User की Information तक पहुंचने के लिए, जो कि Login करना चाहता है, हमें File में Navigation करने की जरूरत पडती है।
इस जरूरत को पूरा करने के लिए PHP हमें File Navigation से संबंधित भी कुछ Functions Provide करता है। यहां हम उन्हीं Functions के बारे में जानेंगे।
fseek() Function
ये Function File Pointer को File में किसी Specified Offset के आधार पर किसी Specific Location पर Move करने का काम करता है। इस Function का Prototype निम्नानुसार होता हैं:
int fseek(resource $handle, int $offset, int $whence=SEEK_SET);
इस Function के पहले Argument के रूप में हमें उस File Pointer को Specify करना होता है, जिसमें हम File Pointer को Move करना चाहते हैं।
जबकि दूसरे Argument के रूप में हमें ये बताना होता है कि हम File Pointer की Current Position से File Pointer को थ्पसम में कितने Bytes आगे या पीछे Move करना चाहते हैं।
यदि हम File Pointer को File के EOF से Just पहले पहुंचाना चाहते हैं, तो हमें File Pointer के रूप में Negative Value को Specify करना होता है और इस Function के तीसरे Parameter को SEEK_END Set करना होता है।
जब हम तीसरे Parameter को Specify नहीं करते हैं, तो File Pointer File की Beginning से दूसरे Parameter में Specified मान के बराबर Bytes आगे Move होता है। अन्यथा तीसरे Parameter को हम निम्न तीन में से किसी एक मान से Set करके File Pointer की Position के Move होने की प्रक्रिया को Change कर सकते हैं।
SEEK_CUR
तीसरे Parameter के रूप में इस मान को Specify करने पर File Pointer की Current Position बदल जाती है। यानी यदि File Pointer File की First Byte पर Placed है और हमने दूसरे Parameter के रूप में 10 Specify किया है।
जबकि तीसरे Parameter के रूप में SEEK_CUR मान को Set किया है, तो Function के Run होने पर File Pointer की Current Position 1+10 = 11 हो जाएगी। यानी इस Function के Run होने पर File Pointer File के 11th Byte पर Set हो जाएगा।
SEEK_END
तीसरे Parameter के रूप में इस मान को Specify करने पर File Pointer की Current Position EOF + Offset के बराबर Set हो जाती है। इसलिए इस मान को Specify करते समय हमें दूसरे Parameter के रूप में एक Negative मान को Specify करना जरूरी होता है। यदि हम दूसरे Parameter को Positive ही रखें, तो File Pointer File की EOF Position से भी आगे चला जाता है, जिससे Program के Crash होने की सम्भावना होती है।
यानी यदि तीसरे Parameter में हम इस मान को Set करते हैं, तो File Pointer File की Last Byte पर Placed हो जाता है। अब यदि हमने दूसरे Parameter के रूप में 10 Specify किया है। तो File Pointer EOF + 10 यानी EOF से भी 10 Bytes आगे चला जाता है। परिणामस्वरूप Program के Crash होने की संभावना बहुत ज्यादा हो जाती है।
SEEK_SET
तीसरे Parameter के रूप में इस मान को Specify करने पर File Pointer की Current Position + Offset के बराबर Set हो जाती है। ये वही Position होती है, जो हमें उस समय प्राप्त होती है, जब हम तीसरे Parameter को Specify नहीं करते हैं।
ये Function Successfully Run होने की स्थिति में 0 Return करता है जबकि अन्य स्थितियों में -1 Return करता है।
ftell() Function
ये Function File Pointer की उसके Resource में Current Byte Position को Return करता है। यानी यदि File Pointer fseek() Function के प्रयोग द्वारा अपने Specified Resource में 20वीं Byte पर पहुंच गया हो, तो ये Function Return Value के रूप में 20 Return करता है।
ये Function Argument के रूप में किसी File का Handle लेता है और Return Value के रूप में File Pointer की Current Position के Byte Number को Return करता है। जबकि Function के Fail हो जाने की स्थिति में false Return करता है।
rewind() Function
किसी Resource में fseek() व ftell() Functions द्वारा File Pointer को Move कर देने के बाद यदि हम फिर से उस File Pointer को File की Beginning में Place करना चाहते हैं, तो हम इस Function को Use कर सकते हैं।
ये Function भी ftell() Function की तरह केवल किसी Resource के Handle को Parameter के रूप में Accept करता है और Function के Successfully Execute होने की स्थिति में True जबकि Fail होने की स्थिति में False Return करता है।
जब हम किसी File को Append Mode में Open करते हैं, तो fseek() व rewind() Functions का प्रभाव नए Data के Write होने की Position पर नहीं पडता। यानी नया Data तो हमेंशा File के अन्त में ही Write होता है। फिर File Pointer File में कहीं भी Placed क्यों न हो।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF