facebook twitter hatena line email

Php/ウィンドウズでphpのpearを使う

提供: 初心者エンジニアの簡易メモ
2016年4月22日 (金) 09:06時点におけるAdmin (トーク | 投稿記録)による版 (正方形画像トリム&サムネイル)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

参考サイト

http://www.phpbook.jp/pear/index.html

インストール

Windows版のPHP5.2.0不具合あるため、以下ファイルをダウンロード

http://pear.php.net/go-pear.phar

このファイルをPHPをインストールしたディレクトリ内の「PEAR」ディレクトリ内に上書き保存

D:\php\PEAR\go-pear.phar

コマンドプロンプトより

D:
D:\php>go-pear.bat;
を実行

何も表示されない場合はエンターキーを6回押す。

php.ini確認

C:\WINDOWS\php.ini

↓が追加されていること

include_path=".;D:\php5\PEAR"

pear.ini確認

C:\WINDOWS\pear.ini

コマンド

コマンドプロンプトより

d:
d:\php\pearを実行
-既にインストールされているライブラリ参照
pear list
-インストール方法
pear install [lib_name]
(例:pear install db)
インストールに必要なライブラリ全てインストールする場合は
pear install -a
最小限のライブラリのみをインストールする場合は
pear install -o
-アンインストール方法
pear uninstall [lib_name]

アパッチ再起動すると使用可能に

dbライブラリインストール方法

pear install db

ダウンロードファイル

DB.php
DBディレクトリ

サンプル(mysqlへの接続)

<?php
require_once 'DB.php';
//mysqlへの接続
//db名://dbuser:dbpass@dbhost/dbname;
$dsn = 'mysql://root:pass@localhost/test';
$db = DB::connect($dsn);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
print('ok<br>');
$sql = 'select * from t_test';
$res =& $db->query($sql);
if (PEAR::isError($res)) {
    die($res->getMessage());
}
while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
    print($row['id']);
    print($row['name'].'<br>');
}
$db->disconnect();
?>



http_clientライブラリインストール方法

pear install http_client -a

ダウンロードファイル

HTTPディレクトリ

サンプル

<?php 
require_once "HTTP/Client.php";
$login_params = array("p" => "text","ei"=>"UTF-8");
$login_url = "http://search.yahoo.co.jp/search?fr=sfp_as&meta=vc%3D";
$client =& new HTTP_Client(); 
$client->post($login_url, $login_params); 
//$client->get($login_url); 
$response = $client->currentResponse();
print nl2br(print_r($response,1));
?> 



HTML_QuickFormライブラリインストール方法

pear install HTML_QuickForm -a

ダウンロードファイル

HTMLディレクトリ

HTTP_Downloadライブラリインストール方法

pear install -a HTTP_Download

donwload

HTTP/Download
HTTP/Header
HTTP/Download.php
HTTP/Header.php

サンプル(できない?)

<?php
require_once("HTTP/Download.php");
$params = array(
  "file" => "aaa.zip",
  "contenttype" => "application/zip"
);
$download = new HTTP_Download($params);
$download -> send();
//print nl2br(print_r($donwload,1));
?>


Net_UserAgent_Mobileライブラリインストール方法(携帯判別ライブラリ)

pear install -f Net_UserAgent_Mobile

donwload

Net\UserAgentディレクトリ

サンプル

<?php 
include_once('Net/UserAgent/Mobile.php');
$agent = Net_UserAgent_Mobile::factory(); 
//型番の入手 
$model = $agent->getModel(); 

if ($agent->isDoCoMo()) { 
echo("お使いの機種はDoCoMoの{$model}です。"); 
} else if ($agent->isVodafone()) { 
echo("お使いの機種はVodafoneの{$model}です。"); 
} else if ($agent->isEZweb()) { 
echo("お使いの機種はEZwebの{$model}です。"); 
} 
?>


フォルダ内のファイルのgrep検索

pear install File_Find

サンプル

<?php
require_once('./File/Find.php');
$items = &File_Find::glob($pattern, $dir, 'php');
?>

PhpDocumenterライブラリインストール方法

  1. pear install --alldeps phpdocumentor

実行

# phpdoc -t ./doc  -d ./test -o HTML:Smarty:PHP

文字化け回避

php-5.2.6\data\PhpDocumentor\phpDocumentor\Converters\HTML\Smarty\templates\HandS\templates\header.tpl
php-5.2.6\data\PhpDocumentor\phpDocumentor\Converters\HTML\frames\templates\default\templates\header.tpl

の iso-8859-1をUTF-8などに変更

ログライブラリインストール方法

pear install Log

download

Log
Log.php
<?php
require_once "Log.php";
$log = Log::factory("file","d:\home\error.log","id1");
$log->log("ログ1", PEAR_LOG_NOTICE);
?>


PEAR::Image_Transformのインストール方法

pear install Image_Transform-0.9.3

download

Transform
Transform.php

サンプル

$input_file = "sample.png";
$output_file = "sample_resize.jpg";
require_once 'Image/Transform.php';
$imgObj =& Image_Transform::factory('GD');
$imgObj->setOption('quality', 80);
$imgObj->load($input_file);
$width = $imgObj->getImageWidth();  // 幅の取得
$height = $imgObj->getImageHeight(); // 長さの取得
$imgObj->scaleMaxLength(240); // 縦横比を固定でリサイズ
$result = $imgObj->save($output_file, 'jpg');
// 150px に縮小します
//$it->scaleMaxLength(150);
//$it->resize(300,300); // 縦横圧縮してリサイズ
//$it->fit(400,400);//リサイズとの違いが不明
//$it->crop(300, 300);//トリム
//$it->greyscale();//白黒化
//$it->mirror();//?
//$it->addBorder();//gdで使えなかった
//$it->gamma(0.5);//ガンマ値
//$it->rotate(45);//角度変更

画像縮小サムネイル

require_once 'Image/Transform.php';
$imgObj = Image_Transform::factory('GD');
$imgObj->load($output_file);
$imgObj->scalebyPercentage(40); // 40%にリサイズ
$result = $imgObj->save($output_file, 'jpg');

正方形画像トリム&サムネイル

require_once 'Image/Transform.php';
$imgObj = Image_Transform::factory('GD');
$imgObj->load($input_file);
$width = $imgObj->getImageWidth();  // 幅の取得
$height = $imgObj->getImageHeight(); // 長さの取得
// 横幅のほうが長い
if ($width > $height) {
  $imgObj->crop($height, $height, 0, floor($width / 2 - $height / 2));
// 縦幅のほうが長い
} else {
  $imgObj->crop($width, $width, 0, floor($height / 2 - $width / 2));
}
$result = $imgObj->save($output_file, 'jpg');
$imgObj->load($output_file);
$imgObj->scaleMaxLength(240); // 縦横比を固定でリサイズ
$result = $imgObj->save($output_file, 'jpg');

PEAR::Crypt_Blowfishのインストール方法

pear install Crypt_Blowfish

download

Crypt
Crypt/Blowfish
Crypt/Blowfish.php
Crypt/CHAP.php

サンプル

require_once 'Crypt/Blowfish.php';
$key = '暗号キー1';
$value = '暗号化文字列1';
// Blowfishインスタンス生成
$blowfish = new Crypt_Blowfish($key);
// 暗号化
$encrypt = $blowfish->encrypt($value);
// 復号化
$decrypt = $blowfish->decrypt($encrypt);
echo $decrypt;