2009-07-28 7 views
5

मैं पृष्ठों पर हिट की संख्या रिकॉर्ड करना चाहता हूं और मैं या तो सादे फ़ाइल-आधारित या SQLite संग्रहण सोच रहा हूं।PHP का उपयोग कर पेज हिट रिकॉर्ड करने के लिए सबसे अच्छा अभ्यास?

फ़ाइल आधारित विकल्प
एक फ़ाइल केवल एक पूर्णांक प्रत्येक पृष्ठ यात्रा के साथ बढ़ती भी शामिल है और हर पृष्ठ एक अद्वितीय फ़ाइल नाम है। अगर मैं मोड का उपयोग कर एक फ़ाइल खोलता हूं, तो मैं लिख सकता हूं लेकिन क्या फ़ाइल को खोलने और बंद करने से बचाने के लिए इसे बंद करना संभव है?

SQLite विकल्प
कॉलम पृष्ठ का नाम दिखना और हिट्स के साथ एक सरल मेज। फिर भी वही सवाल यह है कि हर बार डीबी खोलने और बंद करने से बचाने के लिए इसे बंद करना संभव है?

उत्तर

4

यदि आपको वास्तव में इन घर में करना है, तो आपको स्क्लाइट विधि के साथ जाना चाहिए। जबकि थोड़ा ओवरहेड है (डेटाबेस फ़ाइल खोलने के कारण), संरचित डेटा को संग्रहीत करने में उल्लेखनीय लाभ भी हो सकते हैं।

उदाहरण के लिए आप एक दिनांक फ़ील्ड जोड़ सकते हैं, और फिर प्रत्येक पृष्ठ के लिए दैनिक/प्रति घंटा/मासिक/जो भी डेटा प्राप्त कर सकते हैं।

आप प्रत्येक विज़िटर के लिए आईपी पता भी जोड़ सकते हैं, और फिर विज़िट डेटा निकाल सकते हैं। इस तरह आप आसानी से अपने साइट उपयोगकर्ताओं के व्यवहार के बारे में डेटा निकाल सकते हैं।

आप अपने आगंतुकों के उपयोगकर्ता-एजेंट और ओएस को भी स्टोर कर सकते हैं, ताकि आप जान सकें कि आपको किन ब्राउज़र को लक्षित करना चाहिए या नहीं।

सब कुछ, डेटाबेस में उस प्रकार का डेटा डालना तुच्छ है। यदि आप इन अध्ययनों के लिए कुछ समय लेते हैं, तो आप इन आंकड़ों से बहुत सी चीजें सीख सकते हैं। इसी कारण से, डेटाबेस आमतौर पर जाने का तरीका होते हैं, क्योंकि वे कुशलतापूर्वक उपयोग करना आसान होते हैं।

+1

ऐसा नहीं है कि मुझे लगता है कि यह एक बुरा जवाब है, लेकिन मैं वास्तव में चाहता हूं कि लोग उत्तर चुनने से 24 घंटे पहले प्रतीक्षा करें। – Imagist

8

Google Analytics। जब तक आप को घर में ऐसा करने के लिए की आवश्यकता नहीं है।

PHP में अपना स्वयं का समाधान रोल करना उतना आसान या जटिल हो सकता है जितना आप चाहें। आप ip-address (हमेशा विश्वसनीय नहीं), पृष्ठ स्थान और दिनांक को स्टोर करने के लिए एक टेबल बना सकते हैं। यह आपको प्रत्येक दिन के लिए अद्वितीय हिट ट्रैक करने की अनुमति देगा। आप रिकॉर्ड की मात्रा को date, numOfUnique की एक साधारण पंक्ति में कम करने के लिए कार्य निर्धारित करना चाह सकते हैं।

एक और तरीका आपकी लॉग फ़ाइलों को पार्स कर रहा है। आप इसे हर 24 घंटे या तो भी कर सकते हैं।

+0

सहमत, तीसरे पक्ष के जावास्क्रिप्ट हिट काउंटर का बेहतर उपयोग करें .. Piwik - http://piwik.org/ देखें जो Google Analytics के लिए एक उत्कृष्ट प्रतिस्थापन है, यदि आप ऐडवर्ड्स और इस तरह का उपयोग नहीं करते हैं। – Stojg

0

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

+0

क्या PHP में डीबी सामग्री चीजों को खोलने के लिए अपाचे पर PHP रनटाइम की कुछ पृष्ठभूमि प्रसंस्करण का उपयोग नहीं करती है (यही कारण है कि वे सर्वर पर मॉड्यूल स्थापित हैं)? यह संसाधनों को बंद करने के लिए बहुत अधिक लगता है जो पृष्ठों/उपयोगकर्ताओं में साझा किए जाते हैं। –

0

आप कितनी यातायात की उम्मीद कर रहे हैं, इसकी अनुपस्थिति में विशेष रूप से उपयोगी उत्तर देना मुश्किल है (जोनाथन सैम्पसन की टिप्पणी के अलावा आप Google Analytics का उपयोग करके बेहतर हो सकते हैं)।

फ़ाइल आधारित विकल्प:

मैं इसे फ़ाइल खुला रखने के लिए संभव है नहीं लगता। साथ ही, आप संभवतः समवर्ती लेखन समस्याओं में टक्कर लेंगे जबतक कि आप किसी प्रकार की लॉकिंग तंत्र को नियोजित न करें।

SQLite विकल्प:

मुझे लगता है कि यह शायद जाने का रास्ता है, यदि आप पहले से ही एक डेटाबेस खोल रखी नहीं गए हैं। मुझे संदेह है कि प्रत्येक बार डीबी खोलना/बंद करना एक बाधा होगी - इसे और प्रोफाइल आज़माएं।

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