File System Functions in PHP – PHP हमें File System से सम्बंधित विभिन्न प्रकार के कामों को आसानी से पूरा करने के लिए विभिन्न प्रकार के Built-In Functions Provide करता है। इन Functions की हमें समय-समय पर विभिन्न प्रकार की जरूरतों को पूरा करने के लिए जरूरत पडती है। इसलिए अब हम PHP द्वारा Provided File System Related कुछ उपयोगी Functions के बारे में जानेंगे।
Path Related Functions
PHP File के Path से संबंधित कुछ Functions Provide करता है, जिनका प्रयोग करके हम हमारी Path संबंधित विभिन्न प्रकार की जरूरतों को पूरा कर सकते हैं। Path Related मुख्य PHP Functions निम्नानुसार हैं:
basename() Function
इस Function का प्रयोग करके हम Argument के रूप में Specified किसी Path की अन्तिम File या Directory का नाम Return कर सकते हैं।
ये Function दो Parameters Accept करता है और Path की अन्तिम Directory या File का नाम एक String के रूप में Return करता है।
<?php $path = basename('C:/wamp/www/phpInHindi/001.php'); //001.php echo $path . "\n"; $path = basename('C:/wamp/www/phpInHindi/'); //phpInHindi echo $path . "\n"; $path = basename('C:/wamp/www/index0.php'); //index0.php echo $path . "\n"; $path = basename('C:/wamp/www/phpInHindi/home.php','.php'); //home echo $path . "\n"; ?>
इस Program में हम देख सकते हैं कि basename() Function के पहले Parameter के रूप में हम जो Path Specify करते हैं, उसके अन्तिम File या Folder का नाम हमें Output के रूप में प्राप्त होता है।
इस Program की अन्तिम Line में हमने इस Function को दूसरे तरीके से Use किया है। जब हम इस Function के दूसरे Argument के रूप में File के Extension को Specify करते हैं, तो File का Extension छोडकर केवल File का नाम ही Return होता है।
dirname() Function
ये Function Argument के रूप में एक Path Accept करता है और Path में Specified Parent Directory का Path Return करता है। यदि Parameter के रूप में Specified Path में एक भी Slash न हो, तो ये Function एक Dot Return करता है, जो कि Current Directory को Represent करता है।
<?php $path = dirname('C:/wamp/www/phpInHindi/001.php'); echo $path . "\n"; $path = dirname('C:/wamp/www/phpInHindi/'); echo $path . "\n"; $path = dirname('C:/wamp/www/index0.php'); echo $path . "\n"; ?> // Output C:/wamp/www/phpInHindi C:/wamp/www C:/wamp/www
जैसाकि उपरोक्त उदाहरण के Output को देखकर हम समझ सकते हैं कि इस Program में हर dirname() Function ने अपने अन्तिम File या Folder के Parent Path को Return किया है।
pathinfo() Function
इस Function का प्रयोग करके हम किसी Path का एक Associative Array Create कर सकते हैं, जिसमे Directory Name, Base Name व Extension की Information होती है। Parameter के रूप में ये Function एक Path Accept करता है।
<?php $path = pathinfo('C:/wamp/www/phpInHindi/001.php'); print_r($path); ?> //Output Array ( [dirname] => C:/wamp/www/phpInHindi [basename] => 001.php [extension] => php [filename] => 001 )
इस Function के दूसरे Parameter के रूप में हम PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION or PATHINFO_FILENAME में से किसी एक या Boolean OR Operator का प्रयोग करते हुए एक से ज्यादा Options का प्रयोग कर सकते हैं।
हम इस दूसरे Option में जिन-जिन Constant मानों को Specify करते हैं, वे सभी मान एक String के रूप में Return होते हैं। लेकिन जब हम इस दूसरे Parameter में किसी मान को Specify नहीं करते, तब Default रूप से सभी मान एक Associative Array के रूप में Return होते हैं।
realpath() Function
इस Function का प्रयोग करके हम किसी Resource का Real Path Return करवा सकते हैं, जो कि एक String के रूप में हमें प्राप्त होता है।
ये Function सभी Symbolic Links को Expand कर देता है और सभी References जैसे कि “/./”, “/../” व Extra ‘/’ Characters को Resolve कर देता है और हमें Absolute Path Return करता है।
ये Function उस स्थिति में False Return करता है, जबकि इस Function में Parameter के रूप में Specified File Available नहीं होती है और ये Function Fail हो जाता है।
<?php echo realpath('/windows/system32'); //Output: C:\Windows\System32 ?>
Size Related Functions
PHP हमें कुछ ऐसे Functions भी Provide करता है, जिनका प्रयोग करके हम किसी File System Related File, Directory या Disk की Size को Calculate कर सकते हैं। ये Functions निम्नानुसार हैं:
filesize() Function
ये Function Argument के रूप में एक File का Path Accept करता है और Return Value के रूप में उस File की Size Bytes में Return करता है। जबकि यदि ये Function Successfully Run नहीं होता, तो False के साथ E_WARNING Level Error Return करता है।
<?php echo "Size of Current File: " . filesize('001.php') . " Bytes."; ?> //Output Size of Current File: 76Bytes.
disk_free_space() Function
ये Function Argument के रूप में किसी Directory या Partition के नाम को String के रूप में Accept करता है और उस Directory के Partition (Drive) के कुल Free Space की Size को Floating Point Value के रूप में Return करता है। इस Function द्वारा Return होने वाली Size Bytes में होती है।
<?php echo "Free Space on C: " . disk_free_space("C:")/1048576 . " MB."; ?> //Output Free Space on C: 1082.015625 MB.
diskfreespace() Function
ये Function disk_free_space() Function का Alias है। यानी हम disk_free_space() Function के स्थान पर इस Function को भी Use कर सकते हैं।
disk_total_space() Function
ये Function Argument के रूप में किसी Directory या Partition के नाम को String के रूप में Accept करता है और उस Directory के Partition (Drive) के कुल Space की Size को Floating Point Value के रूप में Return करता है। इस Function द्वारा Return होने वाली Size Bytes में होती है।
<?php echo "Total Space on C: " . disk_total_space("C:")/1048576 . " MB."; ?> //Output Total Space on C: 34794.99609375 MB.
PHP में किसी Directory की Size Calculate करने से संबंधित कोई भी Function Available नहीं है।
File Related Time Functions
PHP हमें तीन ऐसे Functions Provide करता है, जिनका प्रयोग करके हम किसी File के Access होने, Create होने व Last Modify होने के Date व Time को Return करवा सकते हैं। ये Functions निम्नानुसार हैं:
fileatime() Function
इस Function का प्रयोग करके हम किसी File को Argument के रूप में इस Function में Pass करते हैं और ये Function उस File के Last Access Time को एक Integer Value के रूप में Return कर देता है। Return होने वाला Time Unix Timestamp Format में होता है। यदि ये Function Successfully Run नहीं हो पाता, तो Error की स्थिति में False Return करता है।
<?php $file = "index.php"; printf("File last accessed: %s", date("m-d-y g:i:sa", fileatime($file))); ?> //Output File last accessed: 04-25-12 10:50:04am
filectime() Function
इस Function का प्रयोग करके हम किसी File को Argument के रूप में इस Function में Pass करते हैं और ये Function उस File के Last Changed Time को एक Integer Value के रूप में Return कर देता है। Return होने वाला Time Unix Timestamp Format में होता है। यदि ये Function Successfully Run नहीं हो पाता, तो Error की स्थिति में False Return करता है।
<?php $file = "index.php"; printf("File last changed: %s", date("m-d-y g:i:sa", fileatime($file))); ?> //Output File last changed: 04-25-12 10:49:56am
filemtime() Function
इस Function का प्रयोग करके हम किसी File को Argument के रूप में इस Function में Pass करते हैं और ये Function उस File के Last Modified Time को एक Integer Value के रूप में Return कर देता है। Return होने वाला Time Unix Timestamp Format में होता है। यदि ये Function Successfully Run नहीं हो पाता, तो Error की स्थिति में False Return करता है।
<?php $file = "index.php"; printf("File last modified: %s", date("m-d-y g:i:sa", fileatime($file))); ?> //Output File last changed: 04-25-12 10:49:56am
Last Changed Time व Last Modified Time दोनों में अन्तर है और अन्तर ये है कि Last Changed Time उस समय को Represent करता है, जिस समय File की Permission, Owner, Group या अन्य System Level Changes को Perform किया गया, जबकि Last Modified Time उस समय को Represent करता है, जिस समय अन्तिम बार File के Data को Modify किया गया।
Reading Directory Contents
जिस तरह से PHP हमें Files के साथ प्रक्रिया करने के लिए विभिन्न प्रकार के Functions Provide करता है, उसी तरह से PHP हमें Directories के साथ भी प्रक्रिया करने के लिए विभिन्न Functions Provide करता है।
किसी Directory को ठीक उसी तरह से Read किया जाता है, जिस तरह से हम किसी File को Read करते हैं। इस Section में हम कुछ ऐसे PHP Functions के बारे में जानेंगे, जो कि File System की Directories के साथ काम करते हैं।
Directory Opening
जिस तरह से हम fopen() Function का प्रयोग करके किसी File को Open करते हैं, ठीक उसी तरह से हम opendir() Function का प्रयोग करके किसी Directory के Handle को प्राप्त कर सकते हैं। इस Function का Prototype निम्नानुसार होता हैः
resource opendir(String $path);
हम जिस Directory को Open करना चाहते हैं, उस Directory के Path को हमें Parameter के रूप में इस Function में Pass करना होता है। Successfully Run होने की स्थिति में ये Function Specified Directory का Handle Return करता है जबकि Fail होने की स्थिति में False Return करता है।
Directory Closing
जिस तरह से हम fclose() Function का प्रयोग करके किसी File को Close करते हैं, ठीक उसी तरह से हम closedir() Function का प्रयोग करके किसी Directory को ब्सवेम करके उसके Handle द्वारा Occupied Memory को Release कर सकते हैं। इस Function का Prototype निम्नानुसार होता हैः
resource closedir(resource $directory_handle);
यदि हम बिना किसी Directory Handle को Argument के रूप में Specify किए हुए इस Function को Call करते हैं, तो ये Function Last Time Open किए गए Directory Resource को Close कर देता है।
Directory Rewinding
जिस तरह से हम rewind() Function का प्रयोग करके किसी File को Rewind करते हैं, ठीक उसी तरह से हम rewinddir() Function का प्रयोग करके किसी Directory को Rewind करके Directory के Handle की Beginning में पहुंच जाते हैं। इस Function का Prototype निम्नानुसार होता हैः
resource rewinddir(resource $directory_handle);
Directory Content Reading
readdir() Function का प्रयोग करके किसी Directory के Contents को Read कर सकते हैं। इस Function का प्रयोग करने पर Directory के सारे Contents एक String के रूप में Return होते हैं। इस Function का Prototype निम्नानुसार होता हैः
resource closedir(resource $directory_handle);
ये Function एक बार में Directory के केवल एक Content का Return करता है। इसलिए यदि किसी Directory में एक से ज्यादा Contents हों, तो हमें इस Function को एक Loop में Use करना होता है।
हर बार ये Function Execute होने पर Current Content को एक String के रूप में Return करके अगले Content पर Move हो जाता है।
यदि ये Function Successfully Run होता है तो Current Directory Content को Return करता है जबकि Fail होने की स्थिति में False Return करता है।
सामान्यतः Directory Related उपरोक्त तीनों Functions एक साथ ही Use होते हैं। इसलिए इन तीनों Functions को Use करते हुए हम निम्नानुसार एक Program बना सकते हैं, जिसमें Current Directory के सभी Contents की List Display हो रही हैः
<?php if ($handle = opendir('C:/wamp/www/')) { while (false !== ($entry = readdir($handle))) { echo "$entry\n"; } closedir($handle); } ?> //Output . .. index0.php phpInHindi phplus_ide testmysql0.php TryItYourself
Directory के Contents को Scan करने के लिए PHP हमें scandir() नाम का एक और Function Provide करता है ये Function Directory के सभी Contents की List एक Array के रूप में Return करता है। जबकि Fail होने की स्थिति में ये Function False Return करता है। इस Function का Prototype निम्नानुसार होता हैः
array scandir(string $directory, int $sorting_order=SCANDIR_SORT_ASCENDING);
ये Function पहले Argument के रूप में किसी Directory का Path Accept करता है। जबकि दूसरे Argument के रूप में SCANDIR_SORT_ASCENDING, SCANDIR_SORT_ DESCENDING या SCANDIR_SORT_NONE मान Accept करता है। जो कि Return होने वाले Resultant Array को क्रमश: Ascending, Descending या Default File System आधारित Order में Return करता है। इस दूसरे Parameter का Default मान SCANDIR_SORT_ ASCENDING होता है।
इस Function को हम निम्नानुसार पिछले Program के Alternative के रूप में Use कर सकते हैं:
<?php print_r(scandir('C:/wamp/www/')); ?> //Output Array ( [0] => . [1] => .. [2] => TryItYourself [3] => index0.php [4] => phpInHindi [5] => phplus_ide [6] => testmysql0.php )
chdir() Function
इस Function में Parameter के रूप में हम जिस Directory का नाम Specify करते हैं, Current Page के लिए वही Directory Current Directory बन जाती है। यदि ये Function Successful होता है, तो True Return करता है, जबकि Fail होने की स्थिति में False के साथ E_WRNING Level का Error Return करता है।
getcwd() Function
इस Function में कोई Parameter Accept नहीं करता लेकिन Return Value के रूप में Current Working Directory का नाम एक String के रूप में Return करता है। जबकि यदि यह Function ठीक से Execute न हो पाए, यानी Fail हो जाए, तो उस स्थिति में ये Function False Return करता है।
<?php echo "Current Directory: " . getcwd() . "\n"; chdir('Practical Examples'); echo "After Changing Current Directory: " . getcwd() . "\n"; ?> //Output Current Directory: C:\wamp\www\phpInHindi After Changing Current Directory: C:\wamp\www\phpInHindi\Practical Examples
chroot() Function
इस Function में Parameter के रूप में हम जिस Directory का नाम Specify करते हैं, Current Page के लिए वही Directory Root Directory बन जाती है। यानी इस Function का प्रयोग करके हम किसी भी Directory को Root Directory बना सकते हैं।
यदि ये Function Successful होता है, तो True Return करता है, जबकि Fail होने की स्थिति में False के साथ E_WRNING Level का Error Return करता है। इसका Syntax निम्नानुसार होता हैः
bool chroot(string $directory)
is_dir() Function
इस Function में Parameter के रूप में हम किसी Directory का नाम Specify करते हैं। यदि Specified नाम की Directory Available हो, तो ये Function True Return करता है अन्यथा False Return करता है। Directory Name Specify करने के लिए हम पूरा Path भी Specify कर सकते हैं।
bool is_dir(string $file_or_directory_name)
General Functions
PHP हमें कुछ ऐसे Functions Provide करता है, जिनका प्रयोग करके हम किसी File की स्थिति के बारे में पता लगा सकते हैं। इन Functions को हमने General Functions की Category में रखा है और इस Category के कुछ Functions निम्नानुसार हैं:
is_file() Function
इस Function में Parameter के रूप में हम किसी File का नाम Specify करते हैं। यदि Specified नाम की File Available हो, तो ये Function True Return करता है अन्यथा False Return करता है। Filename Specify करने के लिए हम पूरा Path भी Specify कर सकते हैं।
bool is_dir(string $file_or_directory_name)
is_readable() Function
इस Function में Parameter के रूप में हम किसी File का नाम Specify करते हैं। यदि Specified नाम की File Readable हो, तो ये Function True Return करता है अन्यथा False Return करता है। Filename Specify करने के लिए हम पूरा Path भी Specify कर सकते हैं।
bool is_readable(string $file_name)
is_writable() or is_writeable() Function
इस Function में Parameter के रूप में हम किसी File का नाम Specify करते हैं। यदि Specified नाम की File Writable हो, तो ये Function True Return करता है अन्यथा False Return करता है। Filename Specify करने के लिए हम पूरा Path भी Specify कर सकते हैं।
bool is_writable(string $file_name)
file_exists() Function
ये Function Argument के रूप में किसी File या Directory का नाम Accept करता है और Return Value के रूप में true या false Return करता है। यदि इस Function में Argument के रूप में Specified File या Directory Available हो, तो ये Function True Return करता है अन्यथा False Return करता है।
Shell Command Functions
किसी भी Programming Language में हमेंशा Underlying Operating System के साथ Interact करने के लिए कुछ न कुछ Functions Provide किए जाते हैं क्योंकि हर Programming Language को किसी न किसी जरूरत को पूरा करने के लिए Underlying Operating System से Interact करने की जरूरत पडती ही है।
हालांकि हम PHP में भी exec() व system() Functions का प्रयोग करके किसी भी Operating System Level Commands को PHP द्वारा Fire कर सकते हैं। लेकिन इनके अलावा भी PHP हमें कुछ ऐसे Functions भी Provide करता है, जिनका प्रयोग करके हम System Level कुछ Basic कामों को आसानी से पूरा कर सकते हैं, जैसे कि किसी File को Copy करना या किसी File को Rename करना आदि।
copy() Function
इस Function का प्रयोग करके हम किसी Source File को Destination पर Copy कर सकते हैं। यदि Destination पर समान नाम की File पहले से Exist हो, तो वह File Overwrite हो जाती है। इस Function का Syntax निम्नानुसार होता हैः
bool copy(string $source, string $destination)
यदि ये Function Successfully Run होता है तो True Return होता है अन्यथा False Return होता है।
rename() Function
इस Function का प्रयोग करके हम किसी Source File को Rename करके उसका दूसरा नाम Specify कर सकते हैं। इस Function का Syntax निम्नानुसार होता हैः
bool copy(string $oldname, string $newname)
यदि ये Function Successfully Run होता है तो True Return होता है अन्यथा False Return होता है।
unlink() Function
इस Function का प्रयोग करके हम किसी File को Delete कर सकते हैं। इस Function का Syntax निम्नानुसार होता हैः
bool copy(string $file_to_be_deleted)
यदि ये Function Successfully Run होता है तो True Return होता है अन्यथा False Return होता है।
mkdir() Function
इस Function का प्रयोग करके हम किसी Specified Path पर Specified नाम का Folder Create कर सकते हैं। इस Function का Syntax निम्नानुसार होता हैः
bool mkdir(string $pathname, int $mode=0777, bool $recursive=false)
इस Function में पहले Parameter के रूप में हमे Path के साथ उस Folder का नाम Specify करना होता है, जिसे हम Specified Path पर Create करना चाहते हैं।
दूसरे Parameter के रूप में हमें Create होने वाली Directory की Permission को Set करते हैं।
जबकि तीसरे Parameter के रूप में true Set करके हम Recursive तरीके से Directory के अन्दर Nested Directory Create कर सकते हैं।
ये Function Successfully Run होने पर Specified नाम की Directory Create करता है साथ ही True Return करता है। जबकि Fail होने की स्थिति में False Return करता है।
rmdir() Function
इस Function का प्रयोग करके हम किसी Specified Path पर Specified नाम के Folder को Remove कर सकते हैं। Remove किए जाने वाले Folder का Empty होना जरूरी होता है। यदि Remove किया जो वाला Folder Empty न हो, तो ये Function उस Directory को Remove नहीं करता। इस Function का Syntax निम्नानुसार होता हैः
bool rmdir(string $pathname)
touch() Function
इस Function का प्रयोग करके हम किसी File के Access Time व Last Modified Type को Change कर सकते हैं। इस Function का Syntax निम्नानुसार होता हैः
int touch(string $filename, int $time, int $atime)
इस Function में पहले Parameter के रूप में उस File का नाम Specify करना होता है, जिसके Last Access Time व Last Modified Tie को हम Change करना चाहते हैं।
जबकि दूसरे Parameter के रूप में हमें Last Modified Time व तीसरे Parameter के रूप में हमें Last Access Time को Specify करना होता है।
यदि हम इन दोनों Functions में कोई मान Specify नहीं करते हैं, तो Current Time ही इन दोनों Parameters में Default रूप से Set हो जाता है। यदि ये Function Normally Execute हो जाता है, तो True Return करता है जबकि विपरीत स्थिति में False Return करता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF