@deceze की तरह कहते हैं, आम तौर पर उत्तर नहीं है। हालांकि ऑपरेटिंग सिस्टम लेवल कैश हाल ही में उपयोग की जाने वाली फ़ाइलों को त्वरित पहुंच के लिए कैश कर सकते हैं, लेकिन मैं उन लोगों पर भरोसा नहीं करता हूं जो उपलब्ध हैं। यदि आप प्रति फ़ाइल कई बार पढ़ने वाली फ़ाइल को कैश करना चाहते हैं, तो एक रैपर फ़ंक्शन के अंदर कैश के रूप में कार्य करने के लिए स्थिर चर का उपयोग करने पर विचार करें।
function my_file_read($filename) {
static $file_contents = array();
if (!isset($file_contents[$filename])) {
$file_contents[$filename] = file_get_contents($filename);
}
return $file_contents[$filename];
}
कॉलिंग my_file_read ($ फ़ाइल का नाम) कई बार केवल एक ही समय डिस्क से फ़ाइल पढ़ा जाएगा, बाद में कॉल समारोह के भीतर स्थिर चर से मूल्य पढ़ा जाएगा। ध्यान दें कि आपको इस पृष्ठ पर बड़ी फ़ाइलों या प्रति पृष्ठ केवल एक बार उपयोग करने के लिए इस दृष्टिकोण पर भरोसा नहीं करना चाहिए, क्योंकि स्थैतिक चर द्वारा उपयोग की गई स्मृति अनुरोध के अंत तक जारी रहेगी। स्थैतिक चर में अनावश्यक रूप से फ़ाइलों की सामग्री को रखना आपकी स्क्रिप्ट को मेमोरी हॉग बनाने का एक अच्छा तरीका है।
स्रोत
2013-12-25 00:30:54
संक्षिप्त उत्तर: संख्या – deceze
file_get_contents मूल रूप से केवल फॉपेन, फ़्रेड, फ्लेक्ज़ इत्यादि के लिए एक शॉर्टकट है - इसलिए मुझे लगता है कि एक फ़ाइल पॉइंटर खोलना और इसे फ्रेड करना कैश नहीं है। – Jimbo
क्या PHP में एक फ़ाइल रीडिंग फ़ंक्शन है जहां मैं '$ cache = true' चुन सकता हूं? – silkfire