PHP
読みがなを持つデータを、辞書のような順序に並べ替えたいとする。ところが辞書の配列は意外と複雑だ。Wikipedia の索引の配列として次の規則が提示されている。 読みの五十音順とする。 清音・濁音・半濁音は、この順に並べる。 促音「っ」、拗音「ゃ」「ゅ…
目次 はじめに 1. API を利用可能にする 2. API アカウントを作成し、キーを取得する 3. Analytics へのアクセス権限を API アカウントに付与する 4. Google APIs Client Library for PHP を設定する 5. API を使い Analytics データを取得する 6. 取得でき…
Windows 上で作成した、ファイル名が CP932 の Zip ファイルがどうしても文字化けしてしまう。たとえば “日本語” (93 fa 96 7b 8c ea) というファイルは常に “ô·û{îΩ” (c3 b4 c2 b7 c3 bb 7b c3 ae ce a9) という不可解な化け方をする。 試したこと: set_loc…
PHP 7.0.1 がリリースされたので、ひとまず開発環境である Windows 7 上で動かしてみた。 インストール PHP のダウンロードページから「Windows downloads」のリンクをたどり、Windows 版のダウンロードページへ。 PHP For Windows: Binaries and sources Re…
HTML で書かれたコードから PDF を出力できる mPDF という PHP ライブラリがある。HTML と CSS を理解していれば思い通りに、とまではいかないまでも、それなりにレイアウトすることができる。あるときこの mPDF を使っていたところ、出力される日時がずれて…
あるバージョンの PHP を想定して書かれたコードをより古いバージョンの PHP で動作させないといけなくなったときに、問題になりそうな箇所を挙げる。 PHP 7.3 → 7.4 配列のスプレッド構文 $a = [1, 2]; $b = [0, ...$a, 3, 4]; 矢印関数(ショートクロージ…
タイムゾーンを特に指定しない場合、 date_default_timezone_get() の値が使われる。 getTimezone(); $tz->getName(); // Asia/Tokyo date_default_timezone_get(); // Asia/Tokyo $date->getTimestamp(); // 1410130800 $date->format('Y/m/d H:i:s'); // 2…
2016年4月1日時点、API が更新されて使い方が変わっています。こちらの新しい記事をご覧ください。 Google Analytics API を PHP から使う - メモ用紙 目標 Google Analytics API を使って、人気のページのランキングを作る。次の記事はバージョンの古い PHP…
モバイル環境では通信の帯域が限られているため、内容を絞り込んだコンテンツを提供するのが定石となっている。その判定を行うのに現在最も有効な方法は、HTTP リクエストに含まれる User-Agent ヘッダを参照する方法だ。数多くのアクセス解析ツールでも、ユ…
SQLite には日付型はないが、 CURRENT_TIMESTAMP で現在時刻を文字列として取得することができる。また、date などの関数で時刻の演算することもできる。 SELECT CURRENT_TIMESTAMP AS now , datetime('now', 'start of month') AS first_day , datetime('no…
テストデータとして 金沢市オープンデータ から取得した JSON 形式で 351 KB になるデータを使用した。PHP 5.4.17 (cli) でそれぞれ 1000 回実行したときの実行時間を以下に示す。 エンコード 実行時間 [s] 比 serialize (array) 2.06 +26% serialize (stdCl…
2014年7月1日追記:この記事は情報が古い可能性がありますPHP ソースコードの難読化・暗号化ツール php-compressor, ibLind, プラセンス SPHP, ionCube PHP Encoder を試してみた。 php-compressor php-compressor はコード実行に必要のない空白や改行、コメ…
preg_replace 関数は使い方によっては任意のコードを実行できる脆弱性を生むことがあるため、php.ini の disable_functions によって使用を禁止されている場合がある。 preg_replaceによるコード実行 しかしライブラリ中でも preg_replace が使われる機会は…
MacPorts で入れた php5 (5.3.12) と php5-curl でテスト。 接続 ドメイン 接続方式 暗号化方式 ビット数 digest 鍵交換 認証局 OK twitter.com TLS 1.0 RC4_128 128 SHA1 RSA VeriSign Class 3 Extended Validation SSL CA OK account.edit.yahoo.co.jp TLS…
/dev/null 2>&1 &'); } else { $fp = popen('start "" ' . $command, 'r'); pclose($fp); } } 解説 PHP_OS で Windows か UNIX 系 OS かを判断する(他の処理系については考えていない) UNIX 系 OS の場合、標準出力を /dev/null に捨て、バックグラウンド…