2011-06-14 10 views
5

मैं एक फ्लैट फाइल डेटाबेस बनाना चाहता हूं जो वेबसाइट से डेटा स्टोर करने के लिए .php फ़ाइलों का उपयोग करेगा। मेरी एकमात्र समस्या यह है कि अगर मैं फ्लैटफाइल डेटाबेस से कुछ चुनता हूं (जिसका मतलब है कि फ़ाइल पढ़ी जाती है), अगर उस पल में 'अपडेट' प्रगति पर है (इसका मतलब है कि फ़ाइल संशोधित और लिखी गई है), फ़ाइल हो जाती है खाली और मैं सभी सामग्री खो देता हूँ।PHP जांचें कि फ़ाइल उपयोग में है

मैंने कुछ इस बारे में बताया, यह जांचने के लिए कि फ़ाइल फिलहाल उपयोग में है या नहीं, और यदि यह है, तो कुछ मिलीसेकंड प्रतीक्षा करें और फिर से जांचें। flock()http://php.net/manual/en/function.flock.php

+0

आप SQLite कोशिश की? – Gumbo

+0

मैं बस अपना खुद का सिस्टम बनाना चाहता हूं। – Octavian

उत्तर

9

देखो कृपया इस यह मेरे मामले पर काम किया प्रयास करें ....

if(readyToRead(__FILE__)){ 
     echo "File is ready to read."; 
    } else{ 
     echo "File is used by somebody else."; 
    } 

    function readyToRead($file){ 
     return ((time() - filemtime($file)) > 5) ? true : false; 
    } 
+0

क्या इससे आपकी समस्या हल हो गई? मैं इसका उपयोग करने की भी कोशिश कर रहा हूं, लेकिन ऐसा लगता है जैसे झुंड फ़ाइल को विभिन्न अपाचे अनुरोधों में लॉक नहीं करता है। इसलिए, उदाहरण के लिए, यदि कोई उपयोगकर्ता किसी अन्य अपाचे अनुरोध में फ़ाइल और अन्य उपयोगकर्ता को लॉक करता है, तो लॉक के लिए चेक करता है, फ़ाइल लॉक नहीं होगी। ऐसा लगता है कि वर्तमान PHP उदाहरण के लिए केवल झुंड काम करता है। क्या आपको इस समस्या का सामना नहीं हुआ? –

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