私はこれがパーティーに少し遅れていることを知っていますが、それを使用する最も効率的な方法は、サーバーで1日1回cronジョブを実行してキャッシュを更新し、コードでそれを作成して、browscapが呼び出されたときにキャッシュを更新しないようにすることです.
サイト ページで、次のコードを実行します。
$browscap = new Browscap($cacheDir);
$browscap->doAutoUpdate = false;
$current_browser = $browscap->getBrowser();
サーバーで、このスクリプトを作成します (私は updateBrowscap.php と呼びます)。私のスクリプトは browscap.php と同じフォルダーにあり、キャッシュ フォルダーはそのサブフォルダーです。
ini_set('memory_limit','1024M'); // allow 1GB for this script
set_time_limit(300); // change to 5 minutes for this script
// CREATE THIS CRON SCRIPT TO RUN ONCE PER DAY
// /usr/bin/php -q [full-path-to-this-file]/updateBrowscap.php > [full-path-to-this-file]/backup.log 2>&1
// Loads the class
require 'Browscap.php';
// The Browscap class is in the phpbrowscap namespace, so import it
use phpbrowscap\Browscap;
echo 'started: '.date("d-m-Y H:i:s", time()).PHP_EOL;
$path = dirname(__FILE__).'/cache';
$bc = new Browscap($path);
$bc->updateCache();
echo 'finished: '.date("d-m-Y H:i:s", time()).PHP_EOL;
私のスクリプトは、共有ホストで割り当てられる最大 512MB を使用して実行されないため、このスクリプトで手動で 1024MB に設定しました。
メモリの問題を解決すると、タイムアウトの問題が発生したため、このスクリプトだけを 30 秒から 5 分に増やしました。
1日1回、午前3時頃に実行しています。