カテゴリー別アーカイブ: 開発サンプル

PHPでミリ秒を含む時間を取得する

PHPで開発している時、デバッグ時によくつかう、処理ごとにどれだけ実行時間を出力する。

時間を取得できる「time()」関数

ミリ秒の取得は「microtime()」でUNIXのタイムスタンプを取得する関数を使用する。

————————
echo ‘microtime(true) = ‘.microtime(true) ;

実行結果は以下の通り。
microtime(true) = 1470905143.591

———————–
見づらいので、日付に変換して出力する
//microtimeを.で分割
$arrTime = explode(‘.’,microtime(true));

//UNIXタイムスタンプ
echo $arrTime[0];

//date関数で任意の書式に変換
echo date(‘Y-m-d H:i:s’, $arrTime[0]);

//ミリ秒
echo $arrTime[1];

//日時+ミリ秒
echo date(‘Y-m-d H:i:s’, $arrTime[0]) . ‘.’ .$arrTime[1];

jQuery 要素の指定方法、いろいろ、セレクタの種類

$(“body”)
bodyタグの要素を選択

$(“#id1″)
ID名 id1 の要素を選択

$(“.class1″)
CLASS名 class1 の要素を選択

$(“.class1 .class2″)
CLASS名 class1 の要素の中にあるCLASS名 class2 の要素を選択

$(“.class3, .class4″)
CLASS名 class3、もしくはCLASS名 class4 の要素を選択

$(“.class5″, “#id1″)
ID名 id1 の要素の中にあるCLASS名 class5 の要素を選択

$(“.class6.class7″)
CLASS名 class6 と class7 2つ持つ要素を選択

$(“a[href]”)
aタグのhref属性がある要素を選択

$(“a[href = ‘#pagetop’]”)
aタグのhref属性の値が「#pagetop」の要素を選択

$(“a[href != ‘#pagetop’]”)
aタグのhref属性の値が「#pagetop」でない要素を選択

$(“a[href ^= ‘#link’]”)
aタグのhref属性の値が「#link」から始まる要素を選択

$(“a[href $= ‘bottom’]”)
aタグのhref属性の値が「bottom」で終わる要素を選択

$(“a[href *= ‘page’]”)
aタグのhref属性の値に「page」が含まれている要素を選択

$(“ul li:first”)
すべてのulタグ内をあわせたliタグの中の最初の要素を選択

$(“ul li:first-child”)
各ulタグ内にあるそれぞれのliタグの最初の要素を選択

$(“ul li:last”)
すべてのulタグ内をあわせたliタグの中の最後の要素を選択

$(“ul li:last-child”)
各ulタグ内にあるそれぞれのliタグの最後の要素を選択

$(‘li:not(“.class6″)’)
liタグでCLASS名 class6 が指定されていない要素を選択

This table does not contain a unique column… でつまずいている

「This table does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available」

と表示されるがSQLが実行できるのです。

いろいろと調べた結果
レコードがユニークでないため抽出できないような意味らしい
プライマリー・ユニークキーがないので「レコードを特定する手段がない」

ということでテーブル定義を見直しです。

Unixエポック通算秒(UnixTime)を日付(DateTime)型に変換する方法

UnixTime(Unixエポックタイム, epoch time)通算秒の数値型として保存されている値を
日付表示のDateTime型に変換する方法

+—————+
| starttime |
+—————+
| 1187015526 |
| 1187024827 |
| 1187099887 |
| 1311443077 |
| 1311443081 |
+—————+

select from_unixtime(starttime) from mytable;
+——————————+
| from_unixtime(starttime) |
+——————————+
| 2007-08-13 23:32:06 |
| 2007-08-14 02:07:07 |
| 2007-08-14 22:58:07 |
| 2011-07-24 02:44:41 |
| 2011-07-24 03:07:19 |
+——————————+

CGI設置 さくらインターネットでCGIがうまく動かない

CGIを設置、さくらインターネットのレンタルサーバでが動かない
500 Internal server error

テストサーバで問題なく動作しているcgiがさくらインターネットではうまく動かないことがあります(エラーが出ることがあります)
「perlのパスも、文字コードも、改行コードも問題ない」状態です。。。

①エラーログを確認
エラーログに「Premature end of script headers」と記録されていたら、
ディレクトリやファイルのパーミッションを見てください。

②ディレクトリのパーミッションが777や707になっている場合は755や705にしてみてください。
それでもだめならcgiファイルを705にしてみてください。

たいていこれで行けるはずです。

phpでZIPファイルの圧縮と解凍。ZipArchiveクラス

■ ZIPファイルを圧縮

「ZipArchive::CREATE」で新規にZIPファイルを作成します。
「addFile()」で指定したファイルを「./zip/hoge.zip」に圧縮します。
「addFile()」は複数指定することが可能です。

$zip = new ZipArchive();
// ZIPファイルをオープン
$res = $zip->open(‘./zip/hoge.zip’, ZipArchive::CREATE);

// zipファイルのオープンに成功した場合
if ($res === true) {

// 圧縮するファイルを指定する
$zip->addFile(‘hoge.txt’);
$zip->addFile(‘hoge.jpg’);

// ZIPファイルをクローズ
$zip->close();
}


■ ZIPファイルを解凍

解凍するZIPファイルをオープンし、「extractTo()」で指定した場所に展開します。
指定した場所を確認するとZIPファイルが解凍されていることが確認できます。

// ZIPファイルのパス指定
$zip_path = ‘./zip/hoge.zip’;

$zip = new ZipArchive();

// ZIPファイルをオープン
$res = $zip->open($zip_path);

// zipファイルのオープンに成功した場合
if ($res === true) {

// 圧縮ファイル内の全てのファイルを指定した解凍先に展開する
$zip->extractTo(‘./zip/’);

// ZIPファイルをクローズ
$zip->close();

}