PHP で、UNIX タイムを得る、変換する。
PHP で、yyyy/mm/dd hh:nn 形式の日付から UNIX タイムを調べたり、逆に UNIX タイムから yyyy/mm/dd hh:nn の日付を調べる簡単なスクリプトを作ったので、参考にしてみて欲しい。以下のスクリプトを date.php とかのファイル名で保存して、http://yourdomain.com/date.php にアクセスする。
基本は、
PHP で、yyyy/mm/dd hh:nn 形式の日付から UNIX タイムを調べたり、逆に UNIX タイムから yyyy/mm/dd hh:nn の日付を調べる簡単なスクリプトを作ったので、参考にしてみて欲しい。以下のスクリプトを date.php とかのファイル名で保存して、http://yourdomain.com/date.php にアクセスする。
基本は、
簡単にいうと、「scripts/setup.php 実行後、config/config.inc.php を ./ にコピーして、 .htaccess を設定」 すればよい。
※Fedora Core 6 で phpMyAdmin を Fedora Core OS 自体のインストール時、またはパッケージマネージャ(ソフトウェアの追加・削除)からインストールした人は、phpMyAdmin は /usr/share/phpMyAdmin にインストールされ、http://127.0.0.1/phpMyAdmin/ からアクセスできる。ここで、ブラウザから基本認証でユーザー名とパスワードを聞かれてくるから、ユーザー名 root、パスワードなしでアクセスする。
PHP で、HTTP クライアントを作る方法をまとめてみた。以下の2通りがある。
PHP では fopen でサイトにアクセスできてしまうから、前者の方法が一番シンプルだといえるだろう。ユーザー名とパスワード付きの基本認証が施してあるサイトやさらに凝ったことをしたければ、CURL を使うのがよい。
print_r($value);
のように使う。
別のエントリーで var_dump($value) というのを紹介したが、PHP には 似たような print_r($value) というのも存在する。機能的には似たようなもんである(var_dump は、public や private も表示するらしい)が、print_r は array のポインタを最後まで進めるため、reset($array) をする必要があると、うちのお母ちゃんが言ってた。
Fedora Core 6 のパッケージマネージャで phpMyAdmin を追加しても、localhost からしかアクセスできないので注意する。以下は必要情報。
order deny,allow
# deny from all ←コメントアウト
# allow from 127.0.0.1 ←コメントアウト
allow from all # ←すべてのマシンからアクセス可能にしてしまえ!
Drupal の Development メーリングリストに、
<?php
$class = $class == 'even' ? 'odd' : 'even'
?>
よりも
<?php
$flip = array('even' => 'odd', 'odd' => 'even');
$class = $flip[$class];
?>
の方が10%高速である、という投稿があった。うむむ。。
Drupal は array (によるハッシュテーブル)を使いまくり。ここまで array を駆使すると PHP を使った特有のスクリプトっぽい。慣れるまで時間がかかるかも。
<?php
var_dump($value);
?>
のように使う。
PHP のプログラミングにおいては配列もハッシュも array オブジェクトで扱うため、ハッシュを使いまくるとそのキーと値の対応が何がなんだかわからなくなってくる。特に Drupal はこの言語の機能をフルに使いまくっているのでこのあたりが Drupal のラーニングカーブを緩やかなものにしていると思う。
ゆえに、自分の知りたいことがどこかに書いてあるだろうけど、どこにあるかわからない Drupal においては、デバッグ時に地道に上の var_dump($value); (または、print_r)をコードにはさんでいくしかない。しかし、一度 array() の内容を見れば、Drupal のオブジェクトがどのように格納されているか理解できるだろう。
PHP で安全にクエリー文字列を作るには、key=value のセットを array で作り、http_build_query 関数にかける。たとえば、こんな感じ。
php.ini を見つけて、以下の 10M とか数字のあるところを好きなだけ増やせばよい。php.ini は、Fedora Core なら /etc/php.ini にある。
; Maximum size of POST data that PHP will accept.
post_max_size = <font color="blue"><strong>10M</strong></font>
; Whether to allow HTTP file up
file_uploads = <font color="blue"><strong>On</strong></font>
...
; Maximum allowed size for upload
upload_max_filesize = <font color="blue"><strong>10M</strong></font>
まず、赤→橙→黄→緑→青と徐々に変化する虹色のようなパレットを考える。
この色の変化(RGB=Red, Green, Blue の順)は、
赤 (255, 0, 0)
橙 (255, 128, 0)
黄 (255, 255, 0)
緑 (0, 255, 0)
シアン (0, 255, 255)
青 (0, 0, 255)
という順になるから、これがわかっていれば後は簡単。それぞれの値の間を時間の値(0~23時)適当に埋めていけばよい。
それがわかれば、1日の時間を感覚的な色(あくまでも筆者の感覚)で以下のように表すことができる。以下のコードは、元の画像に、x と y の配列で用意した座標に時間ごとに色を変えながら点を打っていくもの。