في البداية

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

عينة مثبتة على الصفحة
إجمالي عدد التنزيلات:1865[اليوم:23 أمس:76
تم فتح العينة في المتصفح
*حتى إذا قمت بإغلاق الصفحة دون تنزيل الملف بعد ظهور رسالة تطالبك بحفظ الملف على الصفحة مع رابط التنزيل، فسيظل يتم احتسابه كتنزيل. وذلك لأننا نحسب عدد النقرات على الرابط.
تحميل

من هذه الصفحة قم بتحميل ملف "zip" المضغوط الخاص بالبرنامج وقم بتثبيته على موقعك الخاص. اسم الملف هو "count.php"، ولكن يمكنك تغييره.

ولك الحرية في استخدامه، بما في ذلك تعديل الكود وتغيير تصميم الصفحة.

يرجى إعادة كتابة الكود لإضافة وظائف جديدة أو تغيير التصميم لتسهيل فهم الصفحة واستخدامها.

 تحميل برنامج PHP

حول التثبيت

عندما تقوم بفك ضغط ملف "count.php.zip" الذي تم تنزيله، سيتم إنشاء ملف يسمى "count.php". الرجاء إنشاء دليل مثل "download_history" وحفظه.

يحتوي الملف "zip" على ملف واحد فقط يسمى "count.php"، ويتم إنشاء "شاشة تسجيل الدخول" للمسؤول تلقائيًا.

حول الإعدادات

هذه هي طريقة الإعداد الرئيسية. هذه الأجزاء الرئيسية مدرجة أيضًا في ملف PHP.

  1. حول إعدادات كلمة المرور
    1. يجب تعيين كلمة مرور لصفحة المسؤول.
    2. كلمة المرور الافتراضية هي "admin"، ولكن قم بتغييرها إلى أي سلسلة من اختيارك.
    3. لمنع الغرباء من الوصول إلى الصفحات التي تتطلب كلمة مرور، قم بتعيين كلمة مرور قوية قدر الإمكان.
  2. ضبط الملفات للتحميل
    1. أكمل إعدادات "$targetFiles = array()".
    2. هذا جزء مثل "'1' => 'عنوان URL/اسم الملف.zip'،".
  3. دليل لحفظ ملفات السجل
    1. مطلوب دليل يسمى "السجل" على الخادم البعيد لتخزين ملفات السجل التي تسجل التاريخ.
    2. يقوم هذا البرنامج تلقائيًا بإنشاء دليل يسمى "log " عند التحميل لأول مرة. ومع ذلك، إذا تلقيت رسالة مثل "لا يوجد دليل"، فيرجى إنشاؤها وتحميله بشكل منفصل.
  4. بخصوص عرض التاريخ عند التحميل لأول مرة
    1. عند التحميل لأول مرة، قد يتم عرض "التاريخ" والرقم "0" في شاشة عرض التاريخ.
    2. وذلك لأن ملفات السجل مثل "count_1.log" التي تحتوي على تاريخ التحميل يتم إنشاؤها أيضًا في دليل "السجل" الذي تم إنشاؤه تلقائيًا.
    3. إذا كان هذا يزعجك، فانتقل إلى خادم بعيد وقم بتنزيل ملف مثل "count_1.log"، ثم احذف البيانات وقم بتحميله.
    4. ومع ذلك، قد تكون الحالة التي تحتوي على "التاريخ" و"0" أيضًا عبارة عن سجل عند بدء تشغيل العداد. إذا كان هناك تنزيل في ذلك اليوم، فسيتم احتسابه.
  5. حول العرض على صفحة عرض المسؤول
    1. عند عرض الصفحة التي يشاهدها المسؤول، يمكنك اختيار ما إذا كنت تريد تضمين  URL  في عرض الملف ذي الصلة أو عرض اسم الملف فقط.
    2. إذا قمت بإعداد جداول محفوظات متعددة في صفحة واحدة، فيمكنك اختيار الاحتفاظ بالترتيب المحدد باستخدام "$targetFiles = array()" أو الفرز حسب تاريخ حدوث السجلات الجديدة.
  6. تصميم الصفحة، CSS، الخ.
    1. يرجى ضبط تصميم الصفحة وCSS وما إلى ذلك حسب الاقتضاء لتسهيل قراءة الصفحة.
    2. في وقت ما، تمت كتابة CSS كملف خارجي، ولكنه الآن مكتوب على نفس الصفحة بحيث يمكنك الرجوع إلى العلامات عند تغيير CSS.
  7. كيفية إعداد رابط التحميل على الصفحة
    1.  عادةً ما تتم كتابة علامة التنزيل <a> على النحو التالي:
      <a href="/download_history/sample.zip" download="اسم الملف عند التحميل">[أي سلسلة]</a>
    2. في هذا البرنامج، اكتب علامة التنزيل <a> كما يلي.
    3. [مثال]ينسخ
      <a href="/download_history/count.php?download=1" download="اسم الملف عند التحميل" target="_blank">[أي سلسلة]</a>
    4. قم بمطابقة رقم "download=1" مع الرقم المحدد في "$targetFiles = array()". استعرض الملف لتنزيله باستخدام هذا الإعداد.
    5. يرجى مطابقة المسار إلى صفحتك.
    6. برجاء تحميل الصفحة برابط التنزيل بعد تحميل الملف باستخدام "$targetFiles = array()" (في هذا المثال، "count.php").
  8. رمز لعرض السجل في سطر واحد على الصفحات التي تحتوي على روابط التنزيل وما إلى ذلك.
    1. أنشئ JavaScript التالي وضعه على الصفحة التي تريد عرضها.
    2. [مثال]ينسخ
      <script type="text/javascript" src="/download_history/count.php?dsp_count=1&day_dsp=on"></script>
    3. الرجاء مطابقة رقم "dsp_count=1" مع الرقم المحدد في "$targetFiles = array()".
    4. إذا قمت بحذف "&day_dsp=on"، فسيتم عرض "الرقم الإجمالي" فقط دون عرض "اليوم/الأمس".
    5. إجمالي عدد التنزيلات:1865[اليوم:23 أمس:76
      إجمالي عدد التنزيلات:1865
    6. يرجى مطابقة المسار إلى صفحتك.
حول الإعدادات المتقدمة

عند عرض جداول متعددة، فإن الإعداد الأولي لهذا البرنامج هو فرزها حسب آخر وقت تحديث، ولكن إذا كنت تريد الفرز حسب إجمالي عدد التنزيلات، فقم بإنشاء ملف جديد مثل "total_downloads.php". يرجى استبدال الملف الجزء التالي.

  1. تغيير التعليق
    يرجى استبدال التعليق أدناه.
    // اختيار ما إذا كنت تريد استبدال الصف الأصلي بصف جديد مرتب حسب ترتيب السجلات الجديدة عند عرض جداول متعددة على صفحة
  2. انسخ التعليق ليحل محله
    // إذا تم عرض جداول متعددة على الصفحة، فحدد/حدد ما إذا كنت تريد استبدال المصفوفة الأصلية أم لا، وقم بالفرز بترتيب تنازلي لإجمالي عدد التنزيلات.
  3. تغييرات التعليمات البرمجية والتعليقات
    يرجى استبدال الكود والتعليقات في القسم أدناه. يمكنك التفكير في الأمر ككتلة واحدة.
    // احصل على مسارات الملفات وتواريخ آخر تحديث لها (مرتبة بترتيب تنازلي للتاريخ)
    $filePathsAndDates = array();
    foreach ($filePath as $key => $path) {
        if (file_exists($path)) {
            $filePathsAndDates[$key] = filemtime($path);
        } else {
            // قم بإخراج هذا الخطأ إلى السجل وحدد ما إذا كنت تريد متابعة المعالجة أو إحباطها
            echo "خطأ: الملف غير موجود - $path
    "; } } // فرز تنازلي حسب تاريخ التحديث الأخير (التاريخ الأحدث يأتي أولاً) arsort($filePathsAndDates); // إعادة بناء مصفوفة مسارات الملفات التي تم فرزها $sortedFilePaths = array(); foreach ($filePathsAndDates as $key => $date) { $sortedFilePaths[$key] = $filePath[$key]; }
  4. انسخ رمز الاستبدال والتعليقات
    // مصفوفة تخزن العدد الإجمالي للتنزيلات
    $totalDownloads = array();
    
    // احصل على مسار الملف وإجمالي عدد التنزيلات
    foreach ($filePath as $key => $path) {
        if (file_exists($path)) {
            $line = file($path);
            $total = 0;
    
            // جمع عدد التنزيلات لكل صف
            foreach ($line as $val) {
                $valArray = explode(',', $val);
                $total += trim($valArray[1]);
            }
    
            // قم بتخزين العدد الإجمالي للتنزيلات في المصفوفة
            $totalDownloads[$key] = $total;
        } else {
            // قم بإخراج هذا الخطأ إلى السجل وقرر ما إذا كنت تريد متابعة العملية أو إحباطها
            echo "خطأ: الملف غير موجود - $path";
        }
    }
    
    // فرز حسب العدد الإجمالي للتنزيلات بترتيب تنازلي
    arsort($totalDownloads);
    
    // إعادة بناء مجموعة مسارات الملفات المصنفة
    $sortedFilePaths = array();
    foreach ($totalDownloads as $key => $total) {
        $sortedFilePaths[$key] = $filePath[$key];
    }
  5. إنشاء وتثبيت ملفات جديدة
    1. عند إنشاء صفحات متعددة، لمنع حدوث أخطاء في تعيين العناصر بشكل موحد أثناء إضافة المحتوى، قم بعمل كود للجزء الموجود أسفل ملف خارجي وقم بتحميله في الجزء المطبق حاليًا برمز منفصل. الرجاء إنشاء ملف خارجي باسم مثل "config.php".
    // تكوين الملفات للتنزيل. إذا كانت هناك ملفات متعددة، قم بإضافتها كـ '2'، '3'، '4'، إلخ. كما أن '0' صالح.
    // استخدم "http:" أو "https:" للبروتوكول.
    $targetFiles = array(
        '1' => 'YourURL/FileName.zip',
        '2' => 'YourURL/FileName.pdf',
        '3' => 'YourURL/FileName.pdf',
        '4' => 'YourURL/FileName.pdf',
    );
  6. انسخ القسم النموذجي المسمى "config.php"
    <!doctype html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>DownloadHistory</title>
    <meta name="robots" content="NOINDEX,NOFOLLOW">
    </head>
    <body>
    <?php
    // اجعل هذا الجزء فقط ملفًا خارجيًا وقم بتحميله في الصفحة التي تستخدمها مع "include __DIR__ . '/config.php';"
    // تكوين الملفات للتنزيل. إذا كانت هناك ملفات متعددة، قم بإضافتها كـ '2'، '3'، '4'، إلخ. كما أن '0' صالح.
    // استخدم "http:" أو "https:" للبروتوكول.
    $targetFiles = array(
        '1' => 'YourURL/FileName.zip',
        '2' => 'YourURL/FileName.pdf',
        '3' => 'YourURL/FileName.pdf',
        '4' => 'YourURL/FileName.pdf',
    );
    ?>
    </body>
    </html>
    
  7. كود لقراءة الملفات الخارجية ومكان التثبيت
    1. قم بتحميل الملف الذي تم إنشاؤه باسم مثل " config.php " في الموقع أدناه باستخدام الكود " include __DIR__ . '/config.php'; ".
    2. علق أو احذف الجزء أدناه واستبدله بالكود " include __DIR__ . '/config.php'; ".
    // تكوين الملفات للتنزيل. إذا كانت هناك ملفات متعددة، قم بإضافتها كـ '2'، '3'، '4'، إلخ. كما أن '0' صالح.
    // استخدم "http:" أو "https:" للبروتوكول.
    //$targetFiles = array(
    //    '1' => 'YourURL/FileName.zip',
    //    '2' => 'YourURL/FileName.pdf',
    //    '3' => 'YourURL/FileName.pdf',
    //    '4' => 'YourURL/FileName.pdf',
    //);
  8. انسخ الرمز ليحل محله
    include __DIR__ . '/config.php';