1. get_browser ブラウザの機能を取得する
mixed get_browser ([ string $user_agent [, bool $return_array = false ]] )
この関数はブラウザの機能を取得するのですが、取得先は「browscap.ini」というファイルになります。
「browscap.ini」を取得して、「php.ini」にそのファイルの取得先を記述するのですが。
その手順については「FreeBSD - メンテナンス・トラブルシュート - php」をご参照ください。
設定を行ったうえで
<?php
print($_SERVER['HTTP_USER_AGENT'] . "\n");
$browser = get_browser(null, true);
print_r($browser);
というソースを書いて実行すると下記の結果が得られます(オプションの browscap.ini を使用)。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.175 Safari/537.36
Array
(
[browser_name_regex] => ~^mozilla/5\.0 \(.*windows nt 10\.0.*win64. x64.*\).*applewebkit.*\(.*khtml.*like.*gecko.*\).*chrome/.* safari/.*$~
[browser_name_pattern] => Mozilla/5.0 (*Windows NT 10.0*Win64? x64*)*applewebkit*(*khtml*like*gecko*)*Chrome/* Safari/*
[parent] => Chrome Generic
[browser_bits] => 64
[platform] => Win10
[platform_version] => 10.0
[platform_description] => Windows 10
[platform_bits] => 64
[platform_maker] => Microsoft Corporation
[win64] => 1
[comment] => Chrome Generic
[browser] => Chrome
[browser_type] => Browser
[browser_maker] => Google Inc
[frames] => 1
[iframes] => 1
[tables] => 1
[cookies] => 1
[javascript] => 1
[cssversion] => 3
[aolversion] => 0
[device_name] => Windows Desktop
[device_type] => Desktop
[device_pointing_method] => mouse
[device_code_name] => Windows Desktop
[renderingengine_name] => Blink
[renderingengine_description] => a WebKit Fork by Google
[renderingengine_maker] => Google Inc
[browser_modus] => unknown
[version] => 0.0
[majorver] => 0
[minorver] => 0
[alpha] =>
[beta] =>
[win16] =>
[win32] =>
[backgroundsounds] =>
[vbscript] =>
[javaapplets] =>
[activexcontrols] =>
[ismobiledevice] =>
[istablet] =>
[issyndicationreader] =>
[crawler] =>
[isfake] =>
[isanonymized] =>
[ismodified] =>
[device_maker] => unknown
[device_brand_name] => unknown
[renderingengine_version] => unknown
)
上記の例は、わたしが試験的に表示してみたものです。
クライアントの状況により、中身は変わります。
2. memory_get_usage PHP に割り当てられたメモリの量を調べる
「memory_get_usage」という関数で表題の内容が調べられるらしい。
int memory_get_usage ([ bool $real_usage = FALSE ] )
引数に「true」を与えると、システムが割り当てた実際のメモリの大きさ (未使用のページも含むもの) を取得するそうな。
引数を省略したり「false」を与えると使用したモリのみを報告するそうな。
<?php
class myClass
{
private $work = NULL;
public function __construct()
{
global $work;
for ($i=0; $i<10000; $i++)
{
$work .= ' ';
}
}
}
print("割り当てメモリ[".number_format(memory_get_usage(true))."] 使用メモリ[".number_format(memory_get_usage())."]\n");
$myclass = new myClass();
print("割り当てメモリ[".number_format(memory_get_usage(true))."] 使用メモリ[".number_format(memory_get_usage())."]\n");
unset($myclass);
print("割り当てメモリ[".number_format(memory_get_usage(true))."] 使用メモリ[".number_format(memory_get_usage())."]\n");
これを実行すると以下の結果が得られます(結果は、あくまでも一例です)。
割り当てメモリ[2,097,152] 使用メモリ[345,624]
割り当てメモリ[2,097,152] 使用メモリ[358,032]
割り当てメモリ[2,097,152] 使用メモリ[357,976]
3. parse_url URL を解釈し、その構成要素を返す
マニュアルは、「PHP: parse_url - Manual」です。
「Laravel」で
@inject('request', 'Illuminate\Http\Request')
を書いておいて
$request->url();
と混ぜて使うと大変便利。
「Laravel」内で、このサイトで、ここに
@php
$purl = parse_url($request->url());
print_r($purl);
@endphp
と書けば、下記のように出力されます。
Array
(
[scheme] => http
[host] => freebsd.sing.ne.jp
[path] => /lang/php/03/14.html
)