How to Open PHP File – File Handling in PHP

How to Open PHP File - File Handling in PHP. Hindi

How to Open PHP File – File Handling in PHP – कोई भी ऐसी Entity जिससे Input या Output Stream को Initialize किया जा सके, Resource कहा जाता है। Standard Input या Output, Files, Network Sockets आदि सभी Resources के उदाहरण हैं।

इसलिए PHP हमें कई ऐसे Functions Provide करता है, जिनका प्रयोग Resource Handling के लिए File Handling की तुलना में ज्यादा किया जाता है। क्योंकि ये सभी Functions विभिन्न प्रकार के Resources के साथ काम करने के लिए उपयोगी हैं।

फिर भी इन Functions को Files के साथ ज्यादा उपयोग में लिया जाता है, इसलिए यहां हम जिन Functions को Use कर रहे हैं उनमें File व Resources को Interchangeable तरीके से Refer किया गया है।

जब हम File Handling करते हैं, तो हमें कुछ ऐसे Functions मिलते हैं, जो कि पूरी एक Line पर काम करते हैं। इन Functions में Input व Output को एक बार में केवल एक Line की Information को Use किया जा सकता है। इसलिए इस प्रकार के Functions में New Line Character काफी महत्वपूर्ण हो जाते हैं।

हर File के Contents का कहीं न कहीं पर अन्त जरूर होता है। किसी File के अन्त को Represent करने के लिए PHP में EOF Character का प्रयोग किया जाता है। लगभग सभी Programming Languages की तरह ही PHP भी हमें ऐसे Functions Provide करता है, जिन्हें Use करके हम किसी File के End यानी End of File का पता लगाते हैं।

feof() Function PHP का End of File को Return करने वाला Function है। ये Function इस बात को Verify करता है कि File Parser File के End यानी EOF पर पहुंच गया या नहीं। File I/O में इस Function को बहुत ज्यादा उपयोग में लिया जाता है।

ये Function Argument के रूप में किसी Resource का एक Handle Accept करता है और Specified Argument के File Pointer को Check करते हुए true या false Value Return करता है, जो इस बात का संकेत होता है कि File Pointer File के End पर पहुंच गया या नहीं।

जब fopen() Function Successfully Run जो जाता है तब जो File Open होती है उस File का एक Pointer Return होता है। इसी Pointer को File Handle या File Pointer कहा जाता है।

सामान्यतः fopen() या fsockopen() Function को Use करने पर ये Pointer Return होता है और तभी तक Available रहता है, जब तक कि fclose() Function का प्रयोग करके हम File को Close नहीं कर देते।

जब हम इस Function को Use करते हैं तो यदि File Pointer File के End यानी EOF पर पहुंच गया होता है, तो TRUE अन्यथा FALSE Return करता है। जबकि Function के ठीक से Run न होने की स्थिति में ये Function एक Error Return करता है।

जब हम किसी Data को Disk पर Store करना चाहते हैं अथवा किसी Stored Data को Read या Access करना चाहते हैं, तो हमें एक File Create या Open करना पडता है। File Create या Open करने के लिए PHP हमें fopen() Function Provide करता है।

इस Function को Use करने पर Operating System Hard Disk Drive पर कुछ Space Reserve करता है और उस Reserved Space के Starting Byte का एक Address Return करता है, जिसे File Handle कहते हैं।

जब एक बार हम किसी के Data को Read या Access व Manipulate कर चुके होते अथवा File में Data को Write कर चुके होते हैं, तो उस File को Close करके हमें उस File Handle द्वारा Reserved Main Memory को Release करना होता है, ताकि उस Memory को कोई दूसरा Resource Use कर सके।

हालांकि हम हमारे Data को Read या Write तो Disk द्वारा से करते हैं, लेकिन हमारा Operating System Disk Drive को Directly Access नहीं करता। बल्कि Disk के Data को Chunks के रूप में Main Memory में Load करता है और हम जो भी काम करते हैं, वो Main Memory में करते हैं। फिर Operating System हमारी Main Memory में किए गए File के Data Reading या Writing Related कामों Disk पर एक ही बार में Read या Write कर देता है।

इसलिए जब हम किसी File को Open करते हैं और Operating System हमें उस File का जो Handle Return करता है, वह Handle Hard Disk Drive के किसी Memory Address को नहीं बल्कि उस Memory Address को Represent करता है, जहां Chunks के रूप में Disk से Data Main Memory में Load हुआ है।

इसलिए जब तक हम किसी File के Handle को Release नहीं करते, File की Size के बराबर Main Memory Reserve रहती है, जिसे कोई भी अन्य Resource Use नहीं कर सकता। इसलिए Open किए गए Resource यानी Open की गई File को Close करना जरूरी होता है।

Opening a File – fopen() Function

किसी File को Open करने के लिए PHP हमें fopen() नाम का Function Provide करता है। इस Function का प्रयोग करके हम न केवल किसी Local Disk File को Open कर सकते हैं, बल्कि हम किसी HTTP, HTTPS या FTP Resource को भी Open कर सकते हैं। इस Function का Syntax निम्नानुसार होता हैः

resource fopen(string $filename, string $mode, bool $use_include_path=false, resource $context)

$filename

ये Function किसी Disk File या $filename Parameter के रूप में Specified किसी Named Resource को किसी Stream यानी Bytes के समूह के साथ Bind करता है और उस Bound Resource का एक Handle Return करता है। एक बार जब Disk File किसी Memory Handle के साथ Bind हो जाती है, उसके बाद हम PHP का प्रयोग करके Disk File के Data को Read या Write कर सकते हैं।

ये Function Successfully Execute होने पर Opened File का Handle Return करता है जबकि Fail होने की स्थिति में false या Error Return करता है।

इस Function में हमें मूल रूप से दो Parameters को Compulsory रूप से Specify करना होता है। $filename Argument में हमें उस File Name को Specify करना होता है, जिस नाम की File को हम Open करना चाहते हैं। यदि File Disk पर पहले से मौजूद होती है, तो ये Function उस File को दूसरे Parameter में Specified Mode के अनुसार Open करता है।

लेकिन यदि File पहले से Disk पर Exist न हो, तो ये Function पहले Parameter में Specified नाम की एक नई File Create करता है और उस नई Created File का $handle Return करता है।

सामान्यतः PHP को Linux Server पर ही ज्यादा उपयोग में लिया जाता है। लेकिन यदि इसे Windows Operating System पर उपयोग में लिया जा रहा हो, तो हमें हर Backslash को Represent करने के लिए दो Backslashes का प्रयोग करना पडता है। जैसेः

<?php
$handle = fopen(“C:\\wamp\\www\\phpInHindi\\001.php”, “r”);
?>

चूंकि Window Operating System में Path Specify करते समय Slash को भी Use किया जा सकता है। इसलिए Windows Operating System में Path से संबंधित किसी भी तरह की परेशानी से बचने के लिए हमें हमेंशा Slash का ही प्रयोग करना चाहिए। यानी हम उपरोक्त Statement को निम्नानुसार भी Specify कर सकते हैं:

<?php
$handle = fopen(“C:/wamp/www/phpInHindi/001.php”, “r”);
?>

इस Argument में हम मूल रूप से निम्न Supported Protocols को Use कर सकते हैं:

  • file:// — Accessing local filesystem
  • http:// — Accessing HTTP(s) URLs
  • ftp:// — Accessing FTP(s) URLs
  • php:// — Accessing various I/O streams
  • zlib:// — Compression Streams
  • data:// — Data (RFC 2397)
  • glob:// — Find pathnames matching pattern
  • phar:// — PHP Archive
  • ssh2:// — Secure Shell 2
  • rar:// — RAR
  • ogg:// — Audio streams
  • expect:// — Process Interaction Streams

$mode

इस Function का दूसरा Parameter इस बात को Specify करता है कि पहले Parameter के रूप में Specified File को किस Mode में Open करना है। यानी File के Open होने की स्थिति में File की Permission या File के Access Level को दूसरे Parameter द्वारा Specify किया जाता है। File Modes के रूप में हम दूसरे Parameter में निम्न में से किसी Mode को Specify कर सकते हैं:

“r” Reading Mode

ये Mode Specify करने पर Open होने वाली File Reading Mode में Open होती है। File Open होने के बाद File का File Pointer File की शुरूआत यानी Beginning में Set हो जाता है।

“r+” Reading and Writing Mode

ये Mode Specify करने पर Open होने वाली File Reading and Writing Mode में Open होती है। यानी हम File को Read भी कर सकते हैं और File में नया Data Write भी कर सकते हैं। इस Mode को Specify करने पर File Open होने के बाद File का File Pointer File की शुरूआत यानी Beginning में Set हो जाता है।

“w” Writing Mode

ये Mode Specify करने पर Open होने वाली File Writing Mode में Open होती है। File Open होने के बाद File का File Pointer File की शुरूआत यानी Beginning में Set हो जाता है।

परिणामस्वरूप यदि पहले Parameter में Specified File Disk पर पहले से मौजूद हो, तो ये Mode Specify करने पर पिछली File के Content Overwrite हो जाते हैं, क्योंकि इस Mode को Specify करते ही PHP उस Specified File की Length को Truncate करके Zero कर देता है। यानी File के पुराने Contents Delete हो जाते हैं।

“w+” Reading and Writing Mode

ये Mode Specify करने पर Open होने वाली File Reading and Writing Mode में Open होती है। File Open होने के बाद File का File Pointer File की शुरूआत यानी Beginning में Set हो जाता है।

परिणामस्वरूप यदि पहले Parameter में Specified File Disk पर पहले से मौजूद हो, तो ये Mode Specify करने पर पिछली File के Content Overwrite हो जाते हैं, क्योंकि इस Mode को Specify करते ही PHP उस Specified File की Length को Truncate करके Zero कर देता है। यानी File के पुराने Contents Delete हो जाते हैं।

“a” Reading Mode

ये Mode Specify करने पर Open होने वाली File Writing Mode में Open होती है। इस Mode को Specify करने पर यदि पहले Argument में Specified File Disk पर पहले से मौजूद हो, तो File Open होने के बाद File का File Pointer File की शुरूआत यानी Beginning में नहीं बल्कि End में Set हो जाता है। जिससे File में Write किया जाने वाला नया Data File के End में Append होता जाता है।

लेकिन यदि File Disk पर पहले से मौजूद न हो, तो ये Function पहले Argument में Specified नाम की एक नई File को Disk पर Create करता है और उस File के File Pointer को File की Beginning में Set कर देता है।

“a+” Reading Mode

ये Mode Specify करने पर Open होने वाली File Reading and Writing Mode में Open होती है।

इस Mode को Specify करने पर यदि पहले Argument में Specified File Disk पर पहले से मौजूद हो, तो File Open होने के बाद File का File Pointer File की शुरूआत यानी Beginning में नहीं बल्कि End में Set हो जाता है। जिससे File में Write किया जाने वाला नया Data File के End में Append होता जाता है। द्रोष सारी प्रक्रिया “c” Mode के समान ही है।

लेकिन यदि File Disk पर पहले से मौजूद न हो, तो ये Function पहले Argument में Specified नाम की एक नई File को Disk पर Create करता है और उस File के File Pointer को File की Beginning में Set कर देता है।

“x” Create for Writing Mode

ये Mode Specify करने पर Open होने वाली File केवल Writing Mode में Open होती है। इस Mode को Specify करने पर यदि पहले Argument में Specified File Disk पर पहले से मौजूद हो, तो E_WARNING Level का एक Error Message Return होता है और fopen() Function Call Fail हो जाता है। साथ ही इस स्थिति में ये Function False Return करता है।

लेकिन यदि File Disk पर पहले से मौजूद नहीं होती है, तो ये Function एक नई File Create करता है, File Pointer को Newly Created File की Beginning में Set करता है और File का Handle Return करता है।

“x+” Create for Reading and Writing Mode

ये Mode Specify करने पर Open होने वाली File केवल Reading and Writing Mode में Open होती है। द्रोष सारी प्रक्रिया “x+” Mode के समान ही है।

“c” Open file for Writing Only

ये Mode Specify करने पर Open होने वाली File केवल Writing Mode में Open होती है।

इस Mode को Specify करने पर यदि पहले Argument में Specified File Disk पर पहले से मौजूद हो, तो “w” Writing Mode की तरह ये Mode File को Truncate नहीं करता न ही fopen() Function Fail होता है। File Open होने के बाद ये Mode File Pointer को File की Beginning में Set करता है और File का Handle Return करता है।

इस Mode को सामान्यतः तब Use किया जाता है, जब हम Open होने वाली File में नया Data Wrote यानी File को Modify करने से पहले उस File पर एक Advisory Lock Set करना चाहते हैं।

ये Mode Use करने पर File Truncate नहीं होती है। इसलिए यदि हम File को Truncate करना चाहें, तो हमें ftruncate() Function को Use करना पडता है।

“c+” Open file for Reading and Writing

ये Mode Specify करने पर Open होने वाली File केवल Reading and Writing Mode में Open होती है। द्रोष सारी प्रक्रिया “c” Mode के समान ही है।

अलग-अलग Operating Systems में File के Line Ending को अलग-अलग तरीकों से Handle किया जाता है। जब हम कोई Text File Create करते हैं और File में कोई Line Break Place करना चाहते हैं, तो हमें अपने Operating System के अनुसार Correct Line Ending Character को Specify करना जरूरी होता है।

Unix Based Systems में Line Ending Character “\n” होता है जबकि Windows Based Systems में “\r\n” तथा Macintosh Based Systems में “\r” को Line Ending Character के रूप में Specify किया जाता है।

यदि हम Data को File में Write करते समय गलत Line Ending Character का प्रयोग करते हैं, तो जब अन्य Applications में उन Files को Open किया जाता है, तो उस File के Contents उस अन्य Application में एकदम अलग तरह के दिखाई देते हैं।

Windows Operating System हमें ‘t’ Flag Provide करता है, जो कि Text Mode Translation Flag है। ये Flag उस स्थिति में Internally ‘\n’ को ‘\r\n’ में Convert कर लेता है, जब हम किसी File के साथ किसी तरह की प्रक्रिया कर रहे होते हैं।

साथ ही हम ‘b’ Mode को भी Specify कर सकते हैं, जो कि Binary Mode को Represent करता है। जब हम इस Mode को Use करते हैं, तो Windows Operating System हमारे Data को किसी भी तरह से Translate नहीं करता। हम ‘t’ या ‘b’ Flags को किसी भी Mode Parameter के अन्तिम Character के रूप में Specify कर सकते हैं।

जब हम Binary Files के साथ प्रक्रिया कर रहे होते हैं, तब हमें हमेंशा ‘b’ Flag को Use करना चाहिए। ऐसा करने से हमारा Program Portable बना रहता है।

$use_include_path

ये एक Optional Parameter है। यदि हम इसे Specify नहीं करते, तो Default रूप से इसका मान false होता है। यदि हम इसे true Set करते हैं, तो fopen() Function php.ini File में Specified include_path से Associated Specified Path पर नई File Create करने से पहले इस Function के First Parameter में Specified File को Search करता है।

इस प्रकार से अब यदि हम fopen() Function का प्रयोग करते हुए किसी File को Open करना चाहें, तो हम निम्नानुसार fopen() Function को Use कर सकते हैं:

<?php
$handle = fopen(“C:/wamp/www/phpInHindi/index.php”, “r”);
?>

ये Statement index.php नाम की File को Reading Mode में Open करेगा और उस Opened File का Handle $handle नाम के Variable में Store कर देगा।

यदि हम इस File को Writing Mode में Open करना चाहें, तो हमें उपरोक्त Statement में केवल “r” के स्थान पर “w” को Specify करना होगा। जैसेः

<?php
$handle = fopen(“C:/wamp/www/phpInHindi/index.php”, “w”);
?>

जबकि यदि हम हमारी File को PHP के include_path में Specified सभी Paths पर अपनी File को Search करवाने के बाद उसे Writing Mode में Open करना चाहें, तो हमें उपरोक्त Statement को निम्नानुसार तीसरा Parameter Specify करके Modify करना होगाः

fopen() Function केवल किसी Resource को Open करता है यानी Resource को Memory में Load करता है और उस Memory के Starting Point यानी Handle या File Pointer को Return करता है। इस लिए Opened File को Access व Manipulate करने के लिए हमें PHP द्वारा Provided File Related अन्य Functions को Use करना पडता है।

Closing a File – fclose() Function

जब हम किसी File को Open करते हैं, तो वह File Memory में कुछ न कुछ Space Reserve करता है। इस Reserved Space को यदि Free न किया जाए, तो उसे कोई अन्य Resource Use नहीं कर सकता। इसलिए हमेंशा ये जरूरी होता है कि हम जिस File को Open करते हैं, उसे Close भी किया जाए।

किसी File को Close करने के लिए हमें PHP के fclose() Function को Use करना होता है। ये Function Parameter के रूप में उस File के Handle को Accept करता है, जिसे Close करना है।

इस Function के Successfully Run होने की स्थिति में Specified Argument वाली File Close हो जाती है तथा ये Function true Return करता है। जबकि Function के Fail होने की स्थिति में ये Function false Return करता है। इसे हम निम्नानुसार Use कर सकते हैं:

<?php
      $handle = fopen("C:/wamp/www/phpInHindi/index.php", "w");
      // Other file accessing and manipulating codes
      fclose($handle);
?>

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

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW GET DEMO REVIEWS