PHP Streams & File Handling : Advanced File Handling in PHP

Other Blogs

Blogs ❯❯ PHP

Image could not load

PHP Streams & File Handling

PHP Streams & File Handling

File handling एक बहुत ही common task है जब आप PHP में web applications develop कर रहे होते हैं। लेकिन जब बात आती है large files को efficiently handle करने कि, या फिर अलग-अलग file systems के साथ काम करने कि, तो यह काफी challenging हो सकता है।

PHP streams एक powerful feature है जो आपको advanced file handling के काम को easily manage करने में help करता है। इस blog में हम detail में समझेंगे कि PHP streams क्या होते हैं, file handling कैसे होता है, और file uploads को securely handle करना कैसे होता है।

What is streams in PHP ?

Streams PHP का एक inbuilt abstraction layer है जो आपको data को read और write करने का interface provide करता है, चाहे वो file हो, network resource हो या फिर किसी और type का resource. Streams के through आप large files को भी efficiently handle कर सकते हैं बिना complete file को memory में load किये।

By using stream

  • Files को efficiently read और write कर सकते हैं।

  • Different protocols जैसे HTTP, FTP, etc. के साथ work कर सकते हैं।

  • Network sockets, pipes, और other data streams को handle कर सकते हैं।

File Handling in PHP : Basic to Advanced

File handling PHP में basic से advanced level तक किया जा सकता है। Basic file operations जैसे fopen(), fread(), fwrite() का use करके आप small files handle कर सकते हैं , लेकिन जब बात अति है large files या different file systems के साथ काम करने कि, तो आपको advanced techniques कि need होती है।

Basic File Operations in PHP

Basic file handling operations को समझने के लिए चलिए एक simple example देखते हैं -

// File ko open karna $file = fopen("example.txt", "r"); if ($file) { // File se content read karna while (($line = fgets($file)) !== false) { echo $line; } // File ko close karna fclose($file); } else { echo "File open nahi ho payi."; }
Explanation
  • fopen() function file को open करता है , "r" mode file को read-only mode में open करता है।

  • fgets() function line by line file को read करता है, जो large files को efficiently handle करने में help करता है।

  • fclose() function file को close करता है जब उसका काम complete हो जाता है।

Advanced File Handling in PHP

जब आपको large files को handle करना हो, तो उन्हें memory में load करना काफी inefficient होता है , इसके लिए आपको streams का use करना चाहिए।

Streams large files को chunks में process करने कि facility देते हैं, जो memory efficient होता है।

Example of reading a large file using streams -

$stream = fopen("largefile.txt", "r"); if ($stream) { while (!feof($stream)) { // Read file in 1024 byte chunks $buffer = fread($stream, 1024); echo $buffer; } fclose($stream); } else { echo "Stream open nahi ho payi."; }
Explanation
  • fread() function 1024 bytes का chunk read करता है instead of loading थे entire file at once .

  • feof() function check करता है कि stream का end आया है या नहीं।

PHP working with streams with different protocols

PHP streams का use करके आप सिर्फ local files ही नहीं, बल्कि network resources जैसे HTTP, FTP, etc. के साथ भी काम कर सकते हैं।

Example of reading data from a remote file using HTTP stream -

$stream = fopen("http://example.com/data.txt", "r"); if ($stream) { while (!feof($stream)) { $line = fgets($stream); echo $line; } fclose($stream); } else { echo "Stream open nahi ho payi."; }

इस example में, stream HTTP protocol के through remote file को read कर रहा है।

PHP upload file securely

File uploads को securely handle करना PHP में बहुत जरूरी होता है, especially जब आप sensitive data के साथ deal कर रहे होते हैं। File uploads के साथ security risks जैसे path traversal, file type validation, और size validation का ध्यान रखना पड़ता है।

PHP secure file upload example

if ($_FILES["file"]["error"] == UPLOAD_ERR_OK) { $tmp_name = $_FILES["file"]["tmp_name"]; $name = basename($_FILES["file"]["name"]); // Validate file type $allowed_types = ["image/jpeg", "image/png"]; if (in_array($_FILES["file"]["type"], $allowed_types)) { // Move the uploaded file to the secure directory move_uploaded_file($tmp_name, "uploads/$name"); echo "File successfully uploaded!"; } else { echo "Invalid file type!"; } } else { echo "File upload failed!"; }
Explanation
  • $_FILES["file"]["error"] check करता है कि file upload में कोई error तो नहीं हुआ।

  • basename() function का use करके file name को sanitize किया जाता है ताकि path traversal attack न हो।

  • File type को validate करने के बाद ही file को secure directory में move किया जाता है using move_uploaded_file() .

Conclusion

PHP streams और advanced file handling techniques आपको large files को efficiently process करने, different protocols के साथ काम करने, और file uploads को securely handle करने का powerful toolset देते हैं।

PHP streams का use करके आप अपनी application को ज़्यादा efficient और secure बना सकते हैं, जो आज के दिन में large-scale applications के लिए एक must-have feature है।

Recent Blogs

Loading ...

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook

Your Thought ?

Please wait . . .

    0 Comment(s) found !