If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
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 करना कैसे होता है।
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 किये।
Files को efficiently read और write कर सकते हैं।
Different protocols जैसे HTTP, FTP, etc. के साथ work कर सकते हैं।
Network sockets, pipes, और other data streams को handle कर सकते हैं।
●●●
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 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.";
}
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 हो जाता है।
●●●
जब आपको large files को handle करना हो, तो उन्हें memory
में load करना काफी inefficient होता है , इसके लिए आपको streams का use करना चाहिए।
Streams large files को chunks
में process करने कि facility देते हैं, जो memory efficient होता है।
$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.";
}
fread()
function 1024 bytes का chunk read करता है instead of loading थे entire file at once .
feof()
function check करता है कि stream का end आया है या नहीं।
●●●
PHP streams का use करके आप सिर्फ local files ही नहीं, बल्कि network resources जैसे HTTP, FTP, etc. के साथ भी काम कर सकते हैं।
$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 कर रहा है।
●●●
File uploads को securely handle करना PHP में बहुत जरूरी होता है, especially जब आप sensitive data के साथ deal कर रहे होते हैं। File uploads के साथ security risks जैसे path traversal, file type validation, और size validation का ध्यान रखना पड़ता है।
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!";
}
$_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() .
●●●
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 है।
Loading ...