MicroAd Compass Wipe_Banner - PC/SP-header部、PC/SP-body部セットで設置 - 外部HTML
Table of Contents - いろいろ Tips - 目次  
 Sitemap Generator - サイトマップ生成プログラム 
 In-Page Search - 検索を自ページ設置 
 Download Counter - ダウンロードカウンター 
 Draft Manager - ブラウザで下書き保存 
 Text Encryption - テキスト暗号・復号化 
 Simple Yet Powerful Note Tool - メモメモ備忘 
 Task Management - 仕事/やること管理 
 Local Storage Check - ローカルストレージチェック 
 Pomodoro Timer - ポモドーロタイマー 
 Text Counter - 文字数カウント 
 Notepad - メモ帳 
 原稿用紙エディター 
 俳句・短歌下書きツール 
 ウィンドウサイズ 
 インターネット環境 
 タブを再び開く 
 Webページ最新状態 
 ページ内文字検索 
 スマホページ内検索 
 画像を加工する 
 Macでカラーコードを調べ 
 Mac用解凍ソフト 
 ショートカット 
 コピペの方法 
 右クリック禁止を回避 
 ローマ字かな入力変換表 
 ひらがな→ヘボン式ローマ字変換 
 ウェブページで長音ローマ字 
 ファイル差分チェック 
 音声合成 
 テキスト読み上げ 
 テキスト読み上げ書き方 
 全国公衆電話の場所 
 よく使う記号 
 キーボードの記号 
 キーボードの記号と入力方法 
 操作で使うキーの名称 
 CSSでカーソルを変える 
Download Counter Language Table of Contents
 Japanese [日本語]  
 English [英語]  
 Korean [韓国語]  
 Simplified Chinese [简体中文]  
 Traditional Chinese [繁體中文]  
 Español [スペイン語]  
 Français [フランス語]  
 Português [ポルトガル語]  
 Arabic العربية [アラビア語]  
 Deutsch [ドイツ語]  
 Italiano [イタリア語]  
 Russian [ロシア語]  
 Turkish [トルコ語]  
 Hindi [ヒンディー語]  
 Vietnamese [ベトナム語]  
 Thai [タイ語]  
 Dutch [オランダ語]  
 Indonesian [インドネシア語]  
 Malay [マレー語]  
 Filipino [フィリピン語]  
 Swedish [スウェーデン語]  
 Norwegian [ノルウェー語]  
 Danish [デンマーク語]  
 Finnish [フィンランド語]  
 Polish [ポーランド語]  
 Czech [チェコ語]  
 Hungarian [ハンガリー語]  
 Greek [ギリシャ語]  
 Romanian [ルーマニア語]  

عداد التحميل
Download Counter
تحميل برنامج عرض التاريخ
= قم بتنزيل وتثبيت كود PHP =
Sample Download Counter

* يجب تعديل "font-family" في البرنامج لتتناسب مع موقعك إذا لزم الأمر.
《 تحميل كود PHP لإنشاء العداد 》
الامتداد عند الحفظ هو ".php".

<?php
//***************************************************************************************************
// برنامج PHP لتتبع عداد التنزيل وعارض تاريخ التنزيل
// [معرفة الجميع كتاب صغير مفيد للجميع]
// [みんなの知識 ちょっと便利帳]
// https://www.benricho.org/Tips/download_history/
// تاريخ النشر: 4 فبراير 2024
//
// نظرة عامة:
// هذا البرنامج هو نظام لتتبع تاريخ تنزيل الملفات، مجهز بوظائف مصادقة المستخدم.
// يتضمن ميزات مثل تنقية بيانات الإدخال، إنشاء ملف تسجيل، وعرض إحصائيات التنزيل.
// يمكنك استخدامه بحرية، بما في ذلك تعديل الشيفرة وتغيير تصميم الصفحة.
//
// ملاحظة:
// قبل تحميل الصفحة التي تحتوي على روابط التنزيل، تأكد من تكوين قسم "$targetFiles = array()" في هذا الملف،
// وقم بتحميل هذه الصفحة قبل الصفحة التي تحتوي على روابط التنزيل.
// قد يؤدي فشل القيام بذلك إلى عدم قدرة المستخدمين على التنزيل عند المحاولة، حيث تقوم هذه الصفحة بتعيين والرجوع إلى الملفات المراد تنزيلها.
//
// التكوين والملاحظات:
// ① تم تعيين كلمة المرور إلى "admin"، ولكن يرجى تغييرها إلى أي سلسلة مطلوبة.
// ② يتم إنشاء دليل "log" لتخزين ملفات السجل تلقائيًا عند التحميل الأول.
// ومع ذلك، إذا واجهت رسائل مثل "الدليل غير موجود"، يرجى تحميله بشكل منفصل.
// ③ عند التحميل الأولي، يظهر عرض السجل "التاريخ" والعدد "0".
// يحدث ذلك لأن ملفات السجل مثل "count_1.log" بتاريخ التحميل يتم إنشاؤها في الدليل "log" الذي تم إنشاؤه تلقائيًا في نفس الوقت.
// إذا كان هذا يشكل قلقًا، قم بالوصول إلى الخادم عن بُعد، وقم بتنزيل ملفات مثل "count_1.log"، واحذف البيانات، ثم قم بالتحميل مرة أخرى.
// ④ عند عرض جداول متعددة على صفحة في عرض التاريخ، يمكنك اختيار ما إذا كنت ترغب في الاحتفاظ بمجموعة الصفائف المعينة في [$targetFiles = array] أم عرضها بترتيب زمني.
// ⑤ في عرض التاريخ، يمكنك اختيار ما إذا كنت ترغب في تضمين المجال في 1) عرض الملف أو 2) عرض اسم الملف فقط.
//
// [تنسيق الرابط على الصفحة مع روابط التنزيل]
// [مثال] <a href="/download_history/count.php?download=Registered Number" download="DownloadedFileName.zip" target="_blank">[Any String]</a>
// ① قم بضبط الرقم في "download=1" ليتناسب مع الرقم المعين في "$targetFiles = array()".
// ② قم بضبط المسار ليتناسب مع صفحتك.
//
// [الكود (جافا سكريبت) لعرض التاريخ في سطر واحد على الصفحة حيث توضع روابط التنزيل]
// [مثال] <script type="text/javascript" src="/download_history/count.php?dsp_count=1&day_dsp=on"></script>
// ① قم بضبط الرقم في "dsp_count=1" ليتناسب مع الرقم المعين في "$targetFiles = array()".
// ② إذا قمت بإزالة "&day_dsp=on"، سيعرض فقط "الإجمالي" دون "اليوم" و"الأمس".
// ③ قم بضبط المسار ليتناسب مع صفحتك.
//***************************************************************************************************

// تكوين الملفات للتنزيل. إذا كانت هناك ملفات متعددة، قم بإضافتها كـ '2'، '3'، '4'، إلخ. كما أن '0' صالح.
// استخدم "http:" أو "https:" للبروتوكول.
$targetFiles = array(
    '1' => 'YourURL/FileName.zip',
    '2' => 'YourURL/FileName.pdf',
    '3' => 'YourURL/FileName.pdf',
    '4' => 'YourURL/FileName.pdf',
);

// قم بتعيين ترميز الأحرف لإخراج HTML
header("Content-Type: text/html; charset=utf-8");

// ترميز الأحرف على الصفحة التي تعرض تاريخ التنزيل
$encodingType = 'UTF-8';

// تعريف معلومات مصادقة المستخدم وإعدادات أخرى
$userid = 'admin';   // معرف المستخدم (استبدل 'admin' بأي سلسلة)
$password = 'admin'; // كلمة المرور (استبدل 'admin' بأي سلسلة)
$hashedPassword = password_hash($password, PASSWORD_DEFAULT); // استخدام password_hash() لتوليد قيمة تجزئة
$dataLogDir = 'log/'; // يتم إنشاء دليل 'log' تلقائيًا بواسطة هذا البرنامج. إذا لم يتم إنشاءه، قم بتحميل دليل باسم 'log' بشكل منفصل

// اختيار ما إذا كنت ترغب في تضمين المجال عند عرض اسم الملف أم لا
$includeDomain = 1;  // 1: عرض مع اسم المجال، 0: عرض فقط اسم الملف

// اختيار ما إذا كنت تريد استبدال الصف الأصلي بصف جديد مرتب حسب ترتيب السجلات الجديدة عند عرض جداول متعددة على صفحة
$sortTables = 1;  // 1: فرز، 0: عدم الفرز

$dir = 'log'; // الدليل لتخزين ملفات السجل وتاريخ التنزيل


// احصل على نطاق موقعك
$domain = $_SERVER['HTTP_HOST'];

// إدارة الجلسة: منع اختطاف الجلسة واستخدام session_set_cookie_params()
session_set_cookie_params(0, '/', $domain, true, true); // Set HttpOnly and Secure flags
session_start();
if (!isset($_SESSION['auth'])) {
    $_SESSION['auth'] = FALSE;
}

// تجزئة كلمة المرور: استخدم كلمة المرور_needs_rehash()
if (password_needs_rehash($hashedPassword, PASSWORD_DEFAULT)) {
    $newHashedPassword = password_hash($password, PASSWORD_DEFAULT);
    // احفظ قيمة التجزئة الجديدة في قاعدة البيانات، وما إلى ذلك.
}

// أنشئ الدليل إذا لم يكن موجودًا
if (!is_dir($dir)) {
    if (mkdir($dir, 0755, true)) {
    } else {
        // عرض إذا فشل إنشاء الدليل
        echo 'الرجاء إنشاء الدليل "' . $dataLogDir . '" وتحميله بشكل منفصل.';
    }
}

// تحقق مما إذا كان دليل السجل قابلاً للكتابة
if (!is_writable($dataLogDir)) {
    die('The "' . $dataLogDir . '" الدليل إما غير موجود أو ليس لديه أذونات الكتابة. الرجاء إنشاء الدليل وتعيين الأذونات بشكل صحيح (على سبيل المثال، 755).');
}

// احصل على التاريخ الأساسي وتاريخ الأمس
$baseDay = date("Y/m/d");
$yesterday = date("Y/m/d", strtotime("-1 day"));

// دالة للحصول على يوم الأسبوع من التاريخ
function getDayOfWeek($date)
{
    $dayOfWeek = date('w', strtotime($date));
    $weekDays = array('الأحد', 'الإثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت');
    return $weekDays[$dayOfWeek];
}

// قم بتعيين مسار الملف لكل ملف هدف وإنشاء ملف سجل إذا لم يكن موجودًا
foreach ($targetFiles as $key => $val) {
    $filePath[$key] = $dataLogDir . "count_" . $key . ".log";

    // قم بإنشاء ملف السجل إذا لم يكن موجودًا
    if (!file_exists($filePath[$key])) {
        createLogFile($filePath[$key]);
    }
}

// احصل على مسارات الملفات وتواريخ آخر تحديث لها (مرتبة بترتيب تنازلي للتاريخ)
$filePathsAndDates = array();
foreach ($filePath as $key => $path) {
    if (file_exists($path)) {
        $filePathsAndDates[$key] = filemtime($path);
    } else {
        // قم بإخراج هذا الخطأ إلى السجل وحدد ما إذا كنت تريد متابعة المعالجة أو إحباطها
        echo "خطأ: الملف غير موجود - $path<br>";
    }
}

// فرز تنازلي حسب تاريخ التحديث الأخير (التاريخ الأحدث يأتي أولاً)
arsort($filePathsAndDates);

// إعادة بناء مصفوفة مسارات الملفات التي تم فرزها
$sortedFilePaths = array();
foreach ($filePathsAndDates as $key => $date) {
    $sortedFilePaths[$key] = $filePath[$key];
}

// اختر بشكل مشروط ما إذا كنت تريد استخدام المسارات التي تم فرزها للفرز
$filePath = ($sortTables) ? $sortedFilePaths : $filePath;

// إعادة كود JavaScript إلى العميل (عرض عدد التنزيلات ديناميكيًا)
if (isset($_GET['dsp_count'])) {
    header("Content-type: application/x-javascript");

    // قم بتعيين الرأس كملف JavaScript
    if (!preg_match("/^[0-9]+$/", $_GET['dsp_count'])) {
        echo "document.write(\"يجب أن تكون المعلمة رقمًا بنصف العرض\")";
        exit();
    }

    $dspCountNo = $_GET['dsp_count'];
    if (!file_exists($filePath[$dspCountNo])) {
        createLogFile($filePath[$dspCountNo]);
    }

    $line = file($filePath[$dspCountNo]);
    $total = 0;
    $todayCount = 0;
    $yesterdayCount = 0;

    foreach ($line as $val) {
        $valArray = explode(',', $val);
        $total += trim($valArray[1]);
        if (strpos($valArray[0], $baseDay) !== false) {
            $todayCount = trim($valArray[1]);
        }
        if (strpos($valArray[0], $yesterday) !== false) {
            $yesterdayCount = trim($valArray[1]);
        }
    }

    // إذا كان خيار عرض التاريخ قيد التشغيل، فاعرض التاريخ بما في ذلك
    if (isset($_GET['day_dsp']) && $_GET['day_dsp'] == 'on') {
        $countDsp = <<<EOF
document.write('<div class="counter_inpage">إجمالي التنزيلات: <strong>{$total}</strong>[<span class="count_today">اليوم : <strong>{$todayCount}</strong></span>  <span class="count_yesterday">أمس : <strong>{$yesterdayCount}</strong></span>]</div>')
EOF;
    } else {
        // إذا كان خيار عرض التاريخ في وضع إيقاف التشغيل، فاعرض إجمالي عدد التنزيلات فقط
        $countDsp = <<<EOF
document.write('<p class="counter_inpage">إجمالي التنزيلات: {$total}</p>')
EOF;
    }

    // إذا كان ترميز الأحرف ليس UTF-8، فقم بالتحويل
    if ($encodingType != 'UTF-8') $countDsp = mb_convert_encoding($countDsp, "$encodingType", 'UTF-8');
    echo $countDsp;

    exit();
}

// المعالجة عند طلب تنزيل الملف
if (isset($_GET['download'])) {
    $fileId = $_GET['download'];

    // اخرج إذا كان معرف الملف ليس رقمًا أو إذا كان معرف الملف غير موجود
    if (!preg_match("/^[0-9]+$/", $fileId) || !isset($filePath[$fileId])) {
        exit('معلمة رقمية غير صحيحة');
    }

    // افتح الملف وأغلقه
    $fp = fopen($filePath[$fileId], "rb+");
    if (!$fp) {
        exit('فشل في فتح الملف');
    }

    flock($fp, LOCK_EX);

    // اقرأ ملف السجل وقم بتخزينه في مصفوفة
    $line = array();
    while (($data = fgets($fp)) !== false) {
        $line[] = $data;
    }

    // اقتطاع الملف وإضافة سطر تاريخ جديد في البداية
    ftruncate($fp, 0);
    rewind($fp);

    // أضف سطر تاريخ جديدًا في البداية إذا لم يكن موجودًا
    if (strpos($line[0], $baseDay) === false) {
        $writeLine = $baseDay . ',1' . "\n";
        fwrite($fp, $writeLine);
    }

    // معالجة كل سطر في الملف
    foreach ($line as $val) {
        // زيادة عدد التنزيلات للتاريخ الحالي
        if (strpos($val, $baseDay) !== false) {
            $valArray = explode(',', $val);
            $valArray[1] = rtrim($valArray[1], "\n") + 1;
            $val = $valArray[0] . ',' . $valArray[1] . "\n";
        }
        fwrite($fp, $val);
    }

    // امسح المخزن المؤقت وحرر القفل
    fflush($fp);
    flock($fp, LOCK_UN);

    // أغلق الملف
    fclose($fp);

    // امسح المخزن المؤقت للإخراج
    ob_end_clean();

    // قم بإجراء تنزيل الملف
    header("Location: {$targetFiles[$fileId]}");
    exit();
} else {
    // ابدأ الجلسة، وقم بتدمير الجلسة إذا طلب تسجيل الخروج
    session_start();
    if (isset($_GET['logout'])) {
        $_SESSION = array();
        session_destroy();
    }

    $loginError = '';

    if (!isset($_SESSION['auth'])) {
        $_SESSION['auth'] = FALSE;
    }

    // استخدم وظيفة تجزئة كلمة المرور لإنشاء قيمة تجزئة
    // معالجة تسجيل الدخول
    if (isset($_POST['userid']) && isset($_POST['password'])) {
        // قارن قيم التجزئة للمصادقة
        if ($_POST['userid'] === $userid && password_verify($_POST['password'], $hashedPassword)) {
            $oldSid = session_id();
            session_regenerate_id(TRUE);

            if (version_compare(PHP_VERSION, '5.1.0', '<')) {
                $path = session_save_path() != '' ? session_save_path() : '/tmp';
                $oldSessionFile = $path . '/sess_' . $oldSid;

                if (file_exists($oldSessionFile)) {
                    unlink($oldSessionFile);
                }
            }

            $_SESSION['auth'] = TRUE;
        } else {
            // معالجة فشل المصادقة
            $_SESSION['auth'] = FALSE;
            $loginError = '<div style="text-align: center; color: crimson;">معرف المستخدم أو كلمة المرور غير صحيحة.</div>';
        }
    }

  // إذا لم تكن المصادقة ناجحة، فاعرض شاشة تسجيل الدخول
    if ($_SESSION['auth'] !== TRUE) {
        ?>
        <!DOCTYPE html>
        <html lang="ar" dir="rtl">
        <head>
            <meta charset="utf-8">
            <meta name="robots" content="NOINDEX,NOFOLLOW">
            <title>تحميل شاشة تسجيل الدخول التاريخ</title>
            <!-- أنماط شاشة تسجيل الدخول (قابلة للتعديل حسب الحاجة)-->
            <style>
                body {
                    font-family: 'Noto Naskh Arabic', 'Amiri', 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN W3', Meiryo, Osaka, 'MS PGothic', arial, helvetica, sans-serif;
                    background-color: #f4f4f4;
                    margin: 0px;
                    padding: 0px;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    height: 100vh;
                }
                form {
                    background-color: #fff;
                    padding: 20px;
                    border-radius: 8px;
                    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
                }
                label {
                    display: block;
                    margin-bottom: 8px;
                }
                input {
                    font-size: 18px; 
                    width: 100%;
                    padding: 8px;
                    margin-bottom: 16px;
                    box-sizing: border-box;
                }
                button {
                    font-size: 16px;
                    background-color: #4caf50;
                    color: #fff;
                    padding: 10px;
                    border: none;
                    border-radius: 4px;
                    cursor: pointer;
                }
                .logintitle {
                    text-align: center;
                    font-size: 18px;
                    font-weight: bold;
                }
                .logininfo {
                    text-align: center;
                }
                .passwordshow {
                    font-size: 14px;
                    font-weight: bold;
                    color: darkgray;
                    text-align: center;
                }
                .center-container {
                    display: inline-block;
                    margin: 0 5px 0 0;
                }
            </style>
        </head>
        <body>
            <div id="login_form">
                <form action="<?php echo $fileName; ?>?mode=download" method="post">
                    <p class="logintitle">【عرض تاريخ التنزيل】</p>
                    <?php if (isset($loginError)): ?>
                        <!-- عرض رسالة خطأ إذا تم تعيين المتغير $loginError -->
                        <p style="color: crimson;"><?php echo $loginError; ?></p>
                    <?php endif; ?>
                    <label for="userid">معرف المستخدم:</label>
                    <input type="text" id="userid" name="userid" required>
                    <label for="password">كلمة المرور:</label>
                    <input type="password" id="password" name="password" required>
                    <?php
                        // بافتراض أن $showPassword هو متغير PHP يحدد ما إذا كان سيتم عرض كلمة المرور في البداية أم لا
                        echo '<label class="passwordshow" for="showPassword">[عرض كلمة المرور]<div class="center-container"><input type="checkbox" id="showPassword" onchange="togglePasswordVisibility()" ' . ($showPassword ? 'checked' : '') . '></div></label>';
                    ?>
                    <button type="submit" name="login_submit">تسجيل الدخول</button>
                </form>   
            </div>

<!-- التحكم في رؤية كلمة المرور -->
<script>
  function togglePasswordVisibility() {
    var passwordInput = document.getElementById('password');
    var showPasswordCheckbox = document.getElementById('showPassword');

    if (showPasswordCheckbox.checked) {
      // إذا تم تحديده، سيتم عرض كلمة المرور
      passwordInput.type = 'text';
    } else {
      // قم بإلغاء التحديد لإخفاء كلمة المرور
      passwordInput.type = 'password';
    }
  }
</script>
</body>
</html><?php
exit();
} else {
  // إذا قمت بتسجيل الدخول، فاعرض صفحة سجل التنزيل
  ?>
  <!DOCTYPE html>
  <html lang="ar" dir="rtl">
  <head>
    <meta charset="utf-8">
    <meta name="robots" content="NOINDEX,NOFOLLOW">
    <title>تحميل التاريخ</title>
    <!-- نمط عرض سجل التنزيل (قابل للتعديل حسب الحاجة) -->
    <style>
                 body {
                    font-family: 'Noto Naskh Arabic', 'Amiri', 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic ProN W3', Meiryo, Osaka, 'MS PGothic', arial, helvetica, sans-serif;
                }
                 .log_title {
                     font-size: 16px;
                     font-weight: bold;
                     color: brown;
                     margin: 0px 0px 15px 10px;
                 }
                 .get_url {
                     font-size: 13px;
                     font-weight: bold;
                     padding: 8px 0;
                     color: brown;
                     background-color: lightgoldenrodyellow;
                 }
                 .log_table{
                     float:left;
                     width: 300px;
                     border: #CCC 1px solid;
                     border-radius: 5px;
                     margin: 0px 0px 5px 10px;
                     padding: 0px 5px 5px 5px;
                     word-break: break-all;
                 }
                 table {
                     width: 100%;
                     border-collapse: collapse;
                 }
                 td,
                 th {
                     padding: 5px 10px;
                     border: 1px solid #999;
                     text-align: right;
                     font-size: 90%;
                 }
                 th {
                     background: lavenderblush;
                     text-align: center;
                     font-weight: normal;
                 }
                 .tableheader {
                     background: lavender;
                     text-align: center;
                     font-weight: bold;
                     white-space: nowrap;
                 }
                 .total{
                     float:left;
                     margin: -25px 0px 0px 10px;
                 }
                 .counter_inpage{
                     margin: 15px 0px 8px 0px;
                 }
                 .bold{
                     font-weight: bold;
                 }
             </style>
  </head>
  <body>
    <div class="log_title">【تحميل التاريخ】 【<a href="?logout=true">تسجيل خروج</a>】</div> 
    <?php foreach($filePath as $key => $val){ ?>                      
      <div class="log_table">         
        <div class="get_url"><?php echo $includeDomain ? $targetFiles[$key] : basename($targetFiles[$key]); ?></div>
        <table align="center">
          <tr>
            <th class="tableheader">تاريخ</th>
            <th class="tableheader">التحميلات</th>
          </tr>
          <?php	  
            $totalDownload = 0;

            // اقرأ فقط في حالة وجود الملف
            if (file_exists($val)) {
              $line = file($val);
              foreach ($line as $lineVal) {
                $lineArray = explode(',', $lineVal);

                // Check if $lineArray[1] is a numeric value
                $numericValue = filter_var($lineArray[1], FILTER_VALIDATE_FLOAT);
                if ($numericValue !== false) {
                  $totalDownload += $numericValue;
                  ?>
                  <tr>
                    <th nowrap><?php echo $lineArray[0] . ' (' . getDayOfWeek($lineArray[0]) . ')'; ?></th>
                    <td class="bold" nowrap><?php echo $lineArray[1]; ?></td>
                  </tr>
                  <?php
                }
              }
            }
          ?>
          <tr>
            <th colspan="2" class="bold">إجمالي التنزيلات: <?php echo $totalDownload;?></th>
          </tr>
        </table>
      </div>              
    <?php
                }
              }
            }
          ?>
</body>
</html><?php
// وظيفة لتطهير جميع العناصر في المصفوفة
function sanitize($arr)
{
  // إذا كانت مصفوفة، فقم بتطبيق التعقيم بشكل متكرر
  if (is_array($arr)) {
    return array_map('sanitize', $arr);
  }
  // قم بإزالة الأحرف الفارغة من داخل السلاسل
  return str_replace("\0", "", $arr);
}

// قم بإنشاء ملف سجل جديد إذا لم يكن موجودًا
function createLogFile($filePath)
{
  $baseDay = date("Y/m/d");
  $fp = fopen($filePath, "a+b");

  if ($fp) {
    flock($fp, LOCK_EX);
    ftruncate($fp, 0);
    rewind($fp);
    fwrite($fp, "$baseDay,0");
    fflush($fp);
    flock($fp, LOCK_UN);
    fclose($fp);

    // تعيين أذونات الملف
    chmod($filePath, 0666);
  } else {
  }
}
الامتداد عند الحفظ هو ".php".
بهذا نختتم مقدمة كود PHP الخاص بـ "برنامج عرض سجل التنزيلات/عداد التنزيلات". نتنمى أن تجده مفيد.
سنكون ممتنين لو تمكنت من إرسال انطباعاتك إلينا بعد استخدام خدمتنا. يرجى ملاحظة أننا غير قادرين على الإجابة على أسئلتك.
スポンサーリンク
スポンサーリンク

おすすめサイト・関連サイト…

スポンサーリンク
Last updated : 2025/01/20
 Copied ! 
 Click to Copy