سؤال

لدي موقع على شبكة الانترنت التي يلعب ملفات mp3 في فلاش لاعب.إذا كان المستخدم بالنقر فوق "تشغيل" مشغل الفلاش تلقائيا تنزيل mp3 ويبدأ اللعب.

هل هناك طريقة سهلة لتتبع عدد المرات أغنية معينة مقطع (أو أي ملف ثنائي) تم تحميلها ؟


هو اللعب الرابط رابط الفعلية ملف mp3 أو بعض شفرة جافا سكريبت الذي ينبثق لاعب ؟

إذا كان هذا الأخير, يمكنك بسهولة إضافة الخاصة بك الخاصة البرمجية تسجيل في تتبع عدد الزيارات إلى ذلك.

إذا كانت الأولى, سوف تحتاج شيء التي يمكن أن تتبع سجل خادم الويب نفسه و جعل هذا التمييز.بلدي خطة استضافة يأتي مع Webalizer, الذي يفعل ذلك بشكل جيد.

إنها شفرة جافا سكريبت بحيث إجابات.

ومع ذلك ، سيكون من الجميل أن تعرف كيف تتبع التنزيلات باستخدام طريقة أخرى (دون تبديل المضيفين).

هل كانت مفيدة؟

المحلول

الشيء المضحك هو أنني كتبت php معرض وسائل الاعلام عن كل ما عندي من الموسيقى 2 منذ أيام.كان لي مشكلة مماثلة.أنا باستخدام http://musicplayer.sourceforge.net/ بالنسبة للاعب.التشغيل يتم بناؤها عبر php.كل الموسيقى طلب الذهاب إلى هناك برنامج نصي يسمى xfer.php?الملف=مهما

$filename = base64_url_decode($_REQUEST['file']);
header("Cache-Control: public");
header('Content-disposition: attachment; filename='.basename($filename));
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));

//  Put either file counting code here. either a db or static files

//

readfile($filename);  //and spit the user the file


function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_,', '+/='));
}

و عند استدعاء الملفات استخدام شيء من هذا القبيل:

function base64_url_encode($input) {
     return strtr(base64_encode($input), '+/=', '-_,');
}

http://us.php.net/manual/en/function.base64-encode.php

إذا كنت تستخدم بعض جافا سكريبت أو فلاش بلاير (JW player على سبيل المثال) يتطلب الرابط الفعلي إلى ملف mp3 أو أيا كان يمكنك إلحاق النص "&type=.mp3" حتى النهائي لينكه يصبح شيئا مثل:"www.example.com/xfer.php?file=34842ffjfjxfh&type=.mp3".بهذه الطريقة يبدو أنه ينتهي مع امتداد mp3 دون التأثير على رابط الملف.

نصائح أخرى

استخدام الخاص بك httpd ملفات السجل.تثبيت http://awstats.sourceforge.net/

استخدام باش:

grep mp3 /var/log/httpd/access_log | wc

إذا أغنيتك / ملف ثنائي من نوع أباتشي ، يمكنك بسهولة البقرى على access_log لمعرفة عدد من التنزيلات.وظيفة بسيطة-logrotate السيناريو يمكن أن البقرى السجلات الخاصة بك والحفاظ على إحصائيات عدد في ديسيبل.هذا له ميزة الأداء لا يجري في العيش طلب رمز المسار.فعل غير الأشياء الهامة مثل احصائيات حاليا هو فكرة جيدة نطاق موقع الويب الخاص بك إلى عدد كبير من المستخدمين.

حتى يمكن إعداد اباتشي .هتكس التوجيه الذي يحول *.mp3 الطلبات في querystring dubayou هو العمل مع.قد يكون طريقة أنيقة للحفاظ على طلب مباشر ويكون لا يزال قادرا على المجمع وظيفة سجل في الاستجابة.

هو اللعب الرابط رابط الفعلية ملف mp3 أو بعض شفرة جافا سكريبت التي دفعها لاعب ؟

إذا كان هذا الأخير, يمكنك بسهولة إضافة الخاصة بك تسجيل رمز هناك لتعقب عدد من الزيارات إلى ذلك.

إذا كانت الأولى, سوف تحتاج إلى شيء التي يمكن أن تتبع سجل خادم الويب نفسها و جعل هذا التمييز.بلدي خطة استضافة يأتي مع webalizer, الذي يفعل ذلك بشكل جيد.

هل هناك قاعدة بيانات مكتبة الموسيقى الخاصة بك?إذا كان هناك أي ملقم التعليمات البرمجية التي يتم تشغيلها عند تحميل mp3 ثم يمكنك إضافة رمز إضافية هناك إلى زيادة عدد مرات اللعب.يمكن أن يكون أيضا جافا سكريبت تقديم طلب ثان إلى زيادة عدد مرات اللعب, ولكن هذا يمكن أن يؤدي إلى الناس/الروبوتات زورا تزايد التهم.

كنت أعمل على الإنترنت-راديو الموقع و كنا جداول منفصلة تتبع الوقت كل أغنية لعبت.لدينا تيارات تم بواسطة perl تشغيل يسكاست, لذلك نحن أثار قاعدة بيانات الطلب في كل مرة مسار جديد بدأ اللعب.ثم لحساب عدد مرات اللعب فإننا تشغيل استعلام لحساب عدد مرات أغنية معرف في اللعب سجل.

مشكلة لدي مع أشياء مثل AWStats / القراءة من خلال سجلات خادم الويب هو أن التنزيلات الكبيرة غالبا ما يكون الانقسام في قطع البيانات في السجلات.وهذا يجعل التوفيق بين عدد محدد من التحميلات من الصعب جدا.

أقترح Google Analytics تتبع الحدث, كما سيسجل مرة واحدة لكل انقر على رابط التحميل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top