2010-05-01 12 views

उत्तर

45

fgetsएक पंक्ति पढ़ता है - यानी यह एक नई लाइन पर रुक जाएगा।

fread पढ़ता कच्चे डेटा - यह किसी भी नई पंक्ति है कि या मौजूद नहीं हो सकता है हो सकता है की स्वतंत्र रूप से एक निर्धारित (या डिफ़ॉल्ट) बाइट की संख्या के बाद बंद हो जाएगा।


स्पीड के रूप में उन दो कार्य सिर्फ एक ही बात नहीं करते हैं, एक दूसरे के ऊपर का उपयोग करने के लिए एक कारण नहीं है:

  • आप किसी पाठ फ़ाइल से, एक पंक्ति को पढ़ने के लिए चाहते हैं, फिर fgets
  • का उपयोग करें यदि आप किसी फ़ाइल से (आवश्यक रूप से कोई पंक्ति नहीं) पढ़ना चाहते हैं, तो fread का उपयोग करें।
0

fread() बाइनरी डेटा और fread के लिए आप पढ़ सकते हैं कि कितने वर्ण

$source_file = fopen($filename, "r") or die("Couldn't open $filename"); 
while (!feof($source_file)) { 
    $buffer = fread($source_file, 5); 
    var_dump($buffer); //return string with length 5 chars! 
} 

संख्या 5 लंबाई बाइट्स पढ़ कर दिया गया है पर एक सीमा होती है।

0

फ़ंक्शन fgets टेक्स्ट फ़ाइल से एक पंक्ति को पढ़ता है। यह तब तक पढ़ रहा है जब तक कि वर्तमान लाइन (या फ़ाइल का अंत) तक नहीं पहुंच जाता है। इसलिए, यदि आप किसी टेक्स्ट फ़ाइल से एक पंक्ति पढ़ना चाहते हैं, तो आपको fgets का उपयोग करना चाहिए। फ़ंक्शन फ़्रेड न केवल लाइन के अंत तक पढ़ता है बल्कि फ़ाइल के अंत तक [उदा। फ्रेड ($ हैंडल)] या पैरामीटर के रूप में निर्दिष्ट के रूप में कई बाइट्स [उदा। फ्रेड ($ हैंडल, 1024)]। इसलिए, यदि आप एक पूर्ण फ़ाइल को पढ़ना चाहते हैं, इससे कोई फर्क नहीं पड़ता कि यह एक फाइल फ़ाइल है जिसमें सभी फाइलें हैं या फाइल से मनमाना कच्चे डेटा हैं, तो आपको फ्रेड का उपयोग करना चाहिए।

संबंधित मुद्दे