FuelphpのAgentクラスを使用している時にエラーが起きたことがあったので、
そのエラーが起きた時の対処方法をメモします。
FuelphpのAgentクラスを使用していると、古いバージョンの場合にエラーが起きる可能性があります。
下記のようなエラーが発生しました。
Warning! ErrorException [ Warning ]: file_get_contents(http://browsers.garykeith.com/stream.asp?Lite_PHP_BrowsCapINI) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 410 Gone COREPATH/classes/agent.php @ line 446: 445: ini_set('user_agent', 'Fuel PHP framework - Agent class (http://fuelphp.com)'); 446: $data = file_get_contents(static::$config['browscap']['url']); 447: default:
UserAgentを判定する時に使用するURL(browscapファイル)のサイトが閉鎖してしまったようで
URLが変更になっておりました。
このようなエラーが起きた場合は、取得するURLを変更する必要があります。
下記に対処方法を記述します。
■ FuelphpのAgentクラスでエラーが起きた場合の対処方法
コアクラスの「fuel/core/config/agent.php」で読み込むファイルを指定しているので、
オーバーライドして「fuel/app/config/agent.php」を作成(コピー)します。
次のURLを読み込むように変更します。
http://browscap.org/stream?q=Lite_PHP_BrowsCapINI
ファイルをコピーしたら下記のように変更します。
【変更前】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php return array ( 'browscap' => array ( 'enabled' => true, 'url' => 'http://browsers.garykeith.com/stream.asp?Lite_PHP_BrowsCapINI' , 'method' => 'wrapper' , 'file' => '/tmp/php_browscap.ini' , ), |
「url」で指定しているファイルを変更します。
【変更後】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php return array ( 'browscap' => array ( 'enabled' => true, 'url' => 'http://browscap.org/stream?q=Lite_PHP_BrowsCapINI' , 'method' => 'wrapper' , 'file' => '/tmp/php_browscap.ini' , ), |
上記のように変更し、サーバにアップすればエラーが出なくなります。
また、下記の方法でもOKです。
browscapファイルをダウンロードし、ローカルに設置したファイルを読み込みます。
※「fuel/app/config/lite_php_browscap.ini」に設置した場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php return array ( 'browscap' => array ( 'enabled' => true, 'url' => 'http://browscap.org/stream?q=Lite_PHP_BrowsCapINI' , 'method' => 'local' , 'file' => APPPATH . 'config/lite_php_browscap.ini' , ), |
「method」を「local」に変更し、
「file」に読み込むファイル「lite_php_browscap.ini」を
指定すればダウンロードしたファイルを読み込むことができます。
Agentクラスを使用してエラーが起きた場合はチェックしてみてください。