PEARをつかってみよう
注:ここにある情報は古くなっているおそれがあります
PEARってなんだ?

PEARとは、PerlのCPANのようなライブラリ群です。よく使われるクラスを集めたものです。

c:/php/pearの中に入ってます。(Linuxならばsrc/php-4.0.*/pear/)

インストール方法はWindowsならばphp.iniを次のように書き換えます。
include_path = ".;c:\php\includes;c:\php\pear;"

Linuxの場合は
PHPインストール時に pear ディレクトリ内のファイルが/usr/local/lib/phpにコピーされるようです。

尚、この文章は管理人の推測で書かれています。間違いがあるかも

実行時間を測ってみよう

ベンチマーク取ってみたいと思ったことはありますか?そんな時には「Benchmark/Timer」クラスです。

<?php
  require_once "Benchmark/Timer.php";	//クラスのロード
  $timer = new Benchmark_Timer;		//インスタンスの生成
  $timer->start();				//ベンチスタート

  for($i=0;$i<30000;$i++){}			//計測したいPHP文

  $timer->setMarker('Marker 1');		//マーキング(ラップ)

  while($j<30000){$j++;}			//計測したいPHP文2

  $timer->stop();				//ベンチストップ
  $profile = $timer->getProfiling();		//結果を連想配列に格納
  echo "Total " . $profile[2][total];		//Stopまでの合計秒

  //echo "<pre>".print_r($profile)."</pre>";
  echo $profile[1][name] ."=". $profile[1][diff]."<br>";//Marker1まで
?>

途中経過を測るときはマーキングを置けます。Timer::getProfilingで結果が連想配列として取得できます。

$profiling[x]['name'] = マーカー名(0なら'Start')
$profiling[x]['time'] = そのマーカーのUnixTime
$profiling[x]['diff'] = 前のマーカーからこのマーカーまでの実行時間
$profiling[x]['total'] = このマーカーまでの合計実行時間

StartとStopだけならば$profiling[1][total]が合計実行時間となります。

ベンチマークを取るクラスはもう一つあります。関数の実行時間を測る「Benchmark/Iterate」クラスです。

<?php
  require_once "Benchmark/Iterate.php";
  $bench = new Benchmark_Iterate;

  function my_print($string)
  {
    print $string."<br>";
  }

  $bench->run(100, 'my_print', 'test');
  $result = $bench->get();
  echo $result[mean];
?>

このサンプルでは「my_print」という関数にtestという文字を100回繰り返し送ります。
結果はget()で配列に入り、$result['mean']に100回の平均実行時間が入ります。

ネット上の画像サイズを得る

通常、画像ファイルのサイズやタイプを知るには getimagesize() 関数ですが、 ネット上にあるリモートの画像サイズを得るのが「Image/Remote」クラスです

<?php
  require_once "Image/Remote.php";
  $i = new Image_Remote("http://php.s3.to/g/100.gif");//URL指定

  $data = $i->getImageSize();
  echo "width=$data[0] height=$data[1] type=$data[2] src=$data[3]";
?>

Image::getImageSizeで返ってくる配列は、通常のgetImageSize()関数と同じです。

追記:PHP4.0.5からは<?php $size = GetImageSize ("http://www.php.net/gifs/logo.gif"); ?>とURLが使えるようです


gzip圧縮して転送量減らして高速表示

CPUに余裕がある場合、HTMLページを圧縮して転送することで高速にブラウジングが出来ます。 データ量が多い時や従量制課金の鯖などに有効です。尚インストールで--with-zlibがないと使えません

<?php
  require_once "HTTP/Compress.php";
  $http = new HTTP_Compress;
  $http->start();
?>
  <html>
  <body>
  <p>あっしゅくー
  </html>
  </body>
<?php
  $http->output();
?>

楽々フォーム作成

いちいち<input type=text name=?? と書かなくてもフォームのHTMLを生成してくれるのがHTML/Form.phpです。 しかもテーブルまで作ってくれます。うまく使いこなせば楽かも・・

<?php
//現在はHTML_Form.phpになってます
require_once "HTML/Form.php";
// action先,method(空ならGET),name,target
$f = new HTML_Form("post.php", "POST");

// テキストボックス name=???,タイトル,デフォ値,[幅(空なら20)]
$f->addText("name", "名前", "");
$f->addText("email", "E-Mail", "", 30);
// パスワードテキスト name=???,タイトル,デフォ値,[幅]
$f->addPassword("pwd", "パス", "", 8);
// チェックボックス name=???,タイトル,デフォ値
$f->addCheckbox("cookie", "Cookie", 1);
// テキストエリア name=???,タイトル,デフォ値,[幅,高さ]
$f->addTextarea("com", "コメント", "", 40, 5);
// セレクトボックス name=???,タイトル,エントリー,
[デフォ値,幅=1,ブランク値,マルチならTRUE,属性] $f->addSelect("color", "色", array("赤","青","黄","緑"), 2, 1,"-色-"); // ヒデゥン name=???,value $f->addHidden("mode", "regist"); // Submitボタン [name=???(空ならsubmit)タイトル(空ならSubmit Changes)] $f->addSubmit("submit", " 投稿する "); // Resetボタン [タイトル(空ならDiscard Changes)] $f->addReset("リセット"); // 最後にディスプレイ $f->display(); ?>

2通りの方法が使えるようですが、こちらが簡単な方です
[出力結果] [HTMLソース]

PHP4.3.0からはPEARは最小限インストールしかされません
最新PEARは、http://cvs.php.net/cvs.php/pear/から
または pear install モジュール名でインストールできます。

■PEAR関連サイト

PEARリンク(チュートリアル)
PHP kitchen(チュートリアル)
PEAR解説
PEAR本家(日本語マニュアル有) ミラー
2chスレ
2ch PEAR Wiki
PEARを使ったDB接続(PHP-j)
PEAR-ML
PEAR api docs
HTML QucikFrom入門

 





<<Prev  Next>>


LastModified