"BrainF*ck" interpreter sample implementation by PHP.

インストール

pear install openpear/Acme_BrainPhack

メンテナー

msakamoto-sf (as lead)

リリース

1.0.0 (stable), 0.0.2 (beta), 0.0.1 (beta)

インストール

pear install openpear/Acme_Hyde

メンテナー

Keisuke SATO (as lead)

リリース

1.0.0 (stable)

アイドルマスターのアイドルを管理します。

インストール

pear install openpear/Acme_IdolMaster

メンテナー

yohei (as lead)

リリース

0.1.0 (alpha)

phpcon 2008 での takesako さんの一言から openpear への野望は始まった訳です。

インストール

pear install openpear/Acme_MorningMusume

メンテナー

Keisuke SATO (as lead)

リリース

0.1.0 (beta)

はてな認証APIを利用する為のライブラリ

インストール

pear install openpear/Auth_Hatena

メンテナー

halt (as lead)

リリース

1.0.0 (stable)

こねこでコメントスパムを防ぐライブラリ

インストール

pear install openpear/Auth_Kitten

メンテナー

halt (as lead)

リリース

1.0.0 (stable)

hooo

インストール

pear install openpear/Auth_OpenID

メンテナー

Sotaro KARASAWA (as lead)

リリース

2.2.3 (stable), 2.2.2 (stable)

WSSE認証のパッケージです。

インストール

pear install openpear/Auth_WSSE

依存

pear.php.net
HTTP_Request2

メンテナー

SHIMOOKA Hideyuki (as lead)

リリース

0.1.0 (beta)

ビット処理のユーティリティです。

いちいち、pack v したり、incremental にデータを生成するのに offset を処理するのが面倒だという人向けです。

インストール

pear install openpear/BitIO

メンテナー

よや (as lead)

リリース

1.0.0 (beta)

CSVファイル(ref:RFC4180)をイテレートするためのクラスです。

外国産の同様のクラスでは、fgetcsvを利用しているため文字エンコード周りで不具合があるのでその点を考慮したものを目指しています。

インストール

pear install openpear/CSV_Iterator

メンテナー

MugeSo (as lead)

リリース

0.1.0 (beta)

10進数の数値を任意(HOGE)進数に変換します。



用途は下記を想定しております。

・連番のユーザーIDをそのまま表示したくない

・AUTO_INCREMENT番号をURIなどで使用する

・ユーザーごとに連番でないユニークなIDがほしい


今後の予定

エラーチェック(現在は引数が10進数か確認していません)



使用例・詳細 http://wiki.dinoz.jp/PHP%B4%D8%CF%A2/function/Code_HogeNumber.php/

インストール

pear install openpear/Code_HogeNumber

メンテナー

shuhei suzuki (as lead)

リリース

0.9.0 (beta)

CyclicValueProducerは、指定された配列の値を繰り返し出力するようなSPLイテレータです。

インストール

pear install openpear/CyclicValueProducer

メンテナー

hnw (as lead)

リリース

1.0.0 (stable)

serialize関数を利用した簡易データベースです。オブジェクトデータベースに似ているかもしれません。

インストール

pear install openpear/DB_SerializeDB

メンテナー

TAKEZAWA TAKUMA (as lead)

リリース

0.1.1 (alpha), 0.1.0 (alpha)

和暦変換をするライブラリです。

Peal の Date::Japanese::Era をポーティングしたもの。

<?php
$era = new Date_Japanese_Era(array(2009, 7, 11));
echo $era->name; // 平成
echo $era->gengou; // name のエイリアス
echo $era->year;   // 21
echo $era->nameAscii; // heisei

$era = new Date_Japanese_Era(array('平成', 21));
echo $era->gregorianYear; // 2009

インストール

pear install openpear/Date_Japanese_Era

メンテナー

heavenshell (as lead)

リリース

0.1.1 (beta), 0.1.0 (beta)

Db_Fixture はデータベース絡みのテストを行う際に設定したファイルからテストデータを読み込み、データベースに投入します。


必要な環境

  • データベースへの接続には PDO を使用します。
  • Fixture を記述するファイルには json 形式をサポートしています。
  • PHP 組み込みの json を使用します。

テストコードを実行するにあたって

  • テストコードは lime にて記述しているので、 lime が必要です。
  • データベースに、 test ユーザ(パスワードは testtest) を作成し、Create, Drop, Select, Insert Delete 権限を付与して下さい。
  • データベースに test という データベースを作成して下さい。
  • テストコードを実行すると、自動的に test1, test2 というテーブルを作成します。
  • テストが完了すると、自動的に test1, test2 というテーブルは削除されます。

更新履歴

  • 2009/11/16 setPdo() を実装。Pdo オブジェクトを外部から注入可能にしました。

インストール

pear install openpear/Db_Fixture

メンテナー

heavenshell (as lead)

リリース

0.1.5 (beta), 0.1.3 (beta), 0.1.2 (beta), 0.1.1 (beta), 0.1.0 (beta)

Digginはスクレイピング&スパイダリングライブラリ群です。

最新のソース(Google Code)

更新履歴

リファレンス

現在のコンポーネントは以下のとおりです。

Diggin_Scraper

Web::Scraperライクなスクレイピングを可能にします。

Diggin_Service_Wedata

WedataのAPI操作

Diggin_Service_Tumblr

TumblrのAPI操作

Diggin_Felica_Adapter_Sfcpeep

sfcpeepの標準出力をPHPでの配列形式で扱います。

Diggin_CDDB_Application_CDex

WindowdsリッピングソフトCDexでのCDDBファイル操作を行います。


デモやテストコードは

http://diggin.googlecode.com/svn/standard/trunk/

を参照ください。


Http通信を行うものについてはZend Framework(1.6以上)が必要です。

また、Diggin_Scraperを使うにはtidyモジュール・Net_Url2が動作することも望ましいです。

インストール

pear install openpear/Diggin

依存

openpear.org
Diggin_Scraper_Adapter_Htmlscraping

メンテナー

させざき (as lead)

リリース

0.7.0 (beta), 0.6.11 (alpha), 0.6.10 (alpha), 0.6.9 (alpha), 0.6.8 (alpha), 0.6.7 (alpha), 0.6.6 (alpha), 0.6.5 (alpha), 0.6.4 (alpha), 0.6.3 (alpha), 0.6.2 (alpha), 0.6.1 (alpha), 0.6.0 (alpha)

HttpレスポンスからUTF-8へ自動変換を行うのを目的としたものです。


エンコードの取得はHttpレスポンスヘッダ、metaタグ、(mbstringが利用可能な場合)レスポンスボディの順に行います。

各レスポンスインスタンスから、getBodyされたときにUTF-8に自動変換するためのラッパーを用意しています。(現在はZend_Http_Responseのみ)

*HTMLScraping Classをベースにしております。


参考コード:

$client = new Zend_Http_Client($url);
$response = $client->request();
 
$wrapper = Diggin_Http_Response_CharactorEncoding::createWrapper($response);
var_dump($wrapper instanceof Zend_Http_Response); //true
var_dump($wrapper->getBody()); //UTF-8

インストール

pear install openpear/Diggin_Http_Response_CharactorEncoding

メンテナー

させざき (as lead)

リリース

0.1.0 (stable)

強欲にヘッダーやメタタグのContent-Typeや文字列から文字コードを推測し、レスポンスボディ(HTML)をUTF-8にエンコーディングします。

説明:

http://d.hatena.ne.jp/sasezaki/20100627/p2

旧 Diggin_Http_Response_CharactorEncoding

の強化版です。LGPL

インストール

pear install openpear/Diggin_Http_Response_Charset

メンテナー

させざき (as lead)

リリース

0.3.3 (stable), 0.3.2 (stable), 0.3.1 (stable), 0.3.0 (stable), 0.2.0 (beta), 0.1.1 (beta), 0.1.0 (beta), 0.0.3 (stable), 0.0.1 (beta)

A PHP parser & handler for Robots Exclusion Protocol (robots.txt and more..) require PHP 5.3 or over.

インストール

pear install openpear/Diggin_RobotRules

メンテナー

させざき (as lead)

リリース

0.0.3 (stable), 0.0.2 (beta), 0.0.1 (stable)

Digginライブラリ(*1)のスクレイパーでのアダプターの一つです。

ライセンスの関係上、HTMLScrapingライブラリ(*2))から改変したものをこのパッケージにてまとめています。

Diggin_Http_Response_Charsetに依存します。

*1: http://diggin.musicrider.com/

*2: http://www.rcdtokyo.com/etc/htmlscraping/

インストール

pear install openpear/Diggin_Scraper_Adapter_Htmlscraping

依存

openpear.org
Diggin_Http_Response_Charset

メンテナー

させざき (as lead)

リリース

0.4.8 (stable), 0.4.7 (stable), 0.4.6 (stable), 0.4.5 (stable), 0.4.4 (stable), 0.4.3 (stable), 0.4.2 (stable), 0.4.1 (stable), 0.4.0 (stable), 0.3.4 (stable), 0.3.3 (beta), 0.3.2 (beta), 0.3.1 (beta), 0.3.0 (beta)

Developer suite for Ethna


dependency
Ethna (pear.ethna.jp)
requires
JQuery, JQuery cookie Plugin

load JQuery example:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
    google.load("jquery", "1.2");
</script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>

インストール

pear install openpear/Ether_Suite

依存

pear.ethna.jp
Ethna

メンテナー

Sotaro KARASAWA (as lead)

リリース

0.1.0 (alpha)

Ethna Debugtoolbar Plugin


使い方などは以下参照。

インストール

pear install openpear/Ethna_Plugin_Debugtoolbar

メンテナー

Sotaro KARASAWA (as lead)

リリース

0.9.1 (stable), 0.9.0 (stable), 0.1.1 (alpha), 0.1.0 (alpha)

HTML_Emojiを利用するEthnaプラグインです。

インストール

pear install openpear/Ethna_Plugin_HTMLEmoji

メンテナー

okonomi (as lead)

リリース

0.1.1 (beta), 0.1.0 (beta)

EthnaでRuneMasterテンプレートエンジンを使用するためのプラグインです。

RuneMaster自体は同梱されていないので上記サイトからダウンロードしてください。

インストール方法

  • RuneMaster本体をEthnaプロジェクトのlib以下に入れます。(lib/Rune/Master.phpという感じ)
  • [プロジェクト名]_Controller.phpのrequire_onceが沢山あるところに以下を追加してください
require_once 'Rune/Master.php';
require_once ETHNA_BASE.'/class/Renderer/Ethna_Renderer_RuneMaster.php';
  • テンプレートをRuneMasterのフォーマットで書いてください。

インストール

pear install openpear/Ethna_Renderer_RuneMaster

メンテナー

nazo (as lead)

リリース

0.1.1 (beta), 0.1.0 (beta)

http://hyperestraier.sourceforge.net/:HyperEstraier で使われるファイルフォーマットをパースします。

現在サポートされているファイルフォーマットは次の通り:

  • 文書ドラフト
  • estmaster から得られる検索結果

インストール

pear install openpear/File_HyperEstraier

メンテナー

Kawai (as lead)

リリース

0.1.0 (alpha)

ギターのタブ譜を画像で出力するライブラリです。

画像生成にはGDライブラリを利用しています。

インストール

pear install openpear/GD_Tab_Guitar

メンテナー

cloned (as lead)

リリース

0.1.0 (stable)

HTML_CSS_Mobile MIT License

このライブラリは、

  • <link>タグからの外部CSS
  • <script></script>タグ内記述CSS
  • スクリプト上からの外部ファイル

とかとかCSSファイル/記述を展開し、inlineのstyle要素に埋め込んでくれます。

諸事情からものすごくバージョンが上がってstableになりました。

これからどんどんupして行って、ケータイのHTML/CSSのバッドノウハウを吸収できる緩衝材になればいいなと思って作ってます。

インストール

pear install openpear/HTML_CSS_Mobile

依存

pear.php.net
HTML_CSS
openpear.org
HTML_CSS_Selector2XPath

メンテナー

Sotaro KARASAWA (as lead), yudoufu (Daichi Kamemoto) (as lead)

リリース

1.8.0 (stable), 1.7.0 (beta), 0.1.7 (beta), 0.1.6 (beta), 0.1.5 (beta)

CSSセレクタをXPathに変換します

このライブラリはHTML::Selector::XPathのPHP移殖版となります。

This library converts css selector to XPath.

This is the PHP port of HTML::Selector::XPath

インストール

pear install openpear/HTML_CSS_Selector2XPath

メンテナー

MugeSo (as lead), yudoufu (Daichi Kamemoto) (as lead)

リリース

1.0.0 (stable), 0.1.0 (beta)

HTML_DomParser MIT Licence

simple_html_domの改編です。


OriginalName: simple_html_dom

Website: http://sourceforge.net/projects/simplehtmldom/

Author: S.C. Chen <[email protected]>

Acknowledge: Jose Solorzano (https://sourceforge.net/projects/php-html/)

Contributions by:

Yousuke Kumakura (Attribute filters)

Vadim Voituk (Negative indexes supports of "find" method)

Antcs (Constructor with automatically load contents either text or file/url)

Licensed under The MIT License

Redistributions of files must retain the above copyright notice.

インストール

pear install openpear/HTML_DomParser

メンテナー

ちょびえ (as lead)

リリース

1.10.1 (stable)

EZget方式のダウンロード処理を行うライブラリです。

インストール

pear install openpear/HTTP_Download_Mobile_EZget

メンテナー

okonomi (as lead)

リリース

1.0.0 (stable), 0.1.0 (stable)

OAuthリクエストを行うライブラリ。

HTTP_Request2を継承して拡張してるので、使い方はHTTP_Request2と大体同じ。

RSA-SHA1のシグネチャ生成にも対応。

サンプルはここから。

http://openpear.org/repository/HTTP_OAuthConsumer/trunk/example

インストール

pear install openpear/HTTP_OAuthConsumer

依存

pear.php.net
HTTP_Request2

メンテナー

eth0jp (as lead)

リリース

1.0.6 (stable), 1.0.5 (stable), 1.0.4 (stable), 1.0.3 (stable), 1.0.2 (stable), 1.0.1 (stable), 1.0.0 (stable)

OAuthリクエストの認証を行うサービスプロバイダ側のライブラリ。

2Legged OAuthと3Legged OAuthの両方に対応。

対応しているシグネチャ方式は、HMAC-SHA1とRSA-SHA1。

トークンの保持に、Cache_Lite/Memcached/Memcacheのいずれかを使用。

Social Game Publisher用のSignature検証も可能。

サンプルはここから。

http://openpear.org/repository/HTTP_OAuthProvider/trunk/example

インストール

pear install openpear/HTTP_OAuthProvider

依存

pear.php.net
Cache_Lite

メンテナー

eth0jp (as lead)

リリース

1.1.0 (stable), 1.0.9 (stable), 1.0.8 (stable), 1.0.7 (stable), 1.0.6 (stable), 1.0.5 (stable), 1.0.4 (stable), 1.0.3 (stable), 1.0.2 (stable), 1.0.1 (stable), 1.0.0 (stable)

はてな記法のパーサ + レンダラ。マニュアル => http://nimpad.jp/hatenasyntax

インストール

pear install openpear/HatenaSyntax

メンテナー

anatoo (as lead)

リリース

1.0.7 (stable), 1.0.6 (stable), 1.0.5 (stable), 1.0.4 (stable), 1.0.3 (stable), 1.0.2 (stable), 1.0.1 (stable), 0.9.12 (beta), 0.9.11 (beta), 0.9.10 (beta), 0.9.9 (beta), 0.9.8 (beta), 0.9.7 (beta), 0.9.6 (beta), 0.9.5 (beta), 0.9.4 (beta), 0.9.3 (beta), 0.9.2 (beta), 0.9.1 (beta), 0.9.0 (beta)

ビット処理のユーティリティです。 いちいち、pack v したり、incremental に offset を処理するのが面倒だという人向けです。 (BitIO はそのうち削除されます)

インストール

pear install openpear/IO_Bit

メンテナー

よや (as lead)

リリース

1.1.0 (stable), 1.0.9 (stable), 1.0.8 (stable), 1.0.7 (stable), 1.0.6 (stable), 1.0.5 (stable), 1.0.4 (stable), 1.0.3 (stable), 1.0.2 (stable), 1.0.1 (beta), 1.0.0 (alpha)

SWF バイナリを解釈/編集する為のライブラリです。 IO_Bit が必要です。主に Flash Lite を対象にしています。

インストール

pear install openpear/IO_SWF

メンテナー

よや (as lead)

リリース

1.1.4 (stable), 1.1.3 (stable), 1.1.2 (stable), 1.1.1 (stable), 1.1.0 (stable), 1.0.6 (stable), 1.0.5 (stable), 1.0.4 (stable), 1.0.3 (stable), 1.0.2 (stable), 1.0.1 (stable), 1.0.0 (stable)

IgnoreExceptionIteratorは、SPLのイテレータで例外が発生しても無視するようなイテレータです。

引数のイテレータ内の例外をcatchし、何もせずに破棄します。

致命的な例外が発生しないとわかっている場合に、例外の破棄を簡潔に記述できます。

とはいえ例外が発生したことに気づけなくなるのは危険なので、LoggerIteratorなどと組み合わせて使うのが良いと思います。

一度例外を発生させたイテレータはエラー状態にあるとみなし、その後のメソッド呼び出しについては、本来のイテレータのメソッド呼び出しをしません。単に、valid()はfalseを、他のメソッドはnullを返します。


動作例

<?php
require_once('IgnoreExceptionIterator.php');

$it = new IgnoreExceptionIterator(new EmptyIterator());
$it->current(); // returns null

$it = new EmptyIterator();
$it->current(); // throws exception

ソースコード

http://openpear.org/repository/IgnoreExceptionIterator/trunk/src/IgnoreExceptionIterator.php

インストール

pear install openpear/IgnoreExceptionIterator

メンテナー

hnw (as lead)

リリース

0.1.3 (stable), 0.1.2 (stable), 0.1.1 (stable), 0.1.0 (stable)

カラフルな画像が簡単に作成出来るパッケージです。

http://imagecolorful.com/

  • 履歴
  • 3/10 0.1.3-stableリリース
    • Colorfulという親クラスを作成
    • Image_Colorful_Wordという子クラスを作成
  • 3/8 0.1.2-stableリリース
    • addTextsメソッドの修正
  • 3/7 0.1.1-stableリリース
    • setColorsメソッドの追加
    • setRedメソッドの追加
    • setGreenメソッドの追加
    • setBlueメソッドの追加
    • addColorsメソッドの追加
  • 3/6 0.1.0-stableリリース

TODO

  • ストライプ機能
  • 揺らぎ機能

インストール

pear install openpear/Image_Colorful

メンテナー

camelmasa (as lead)

リリース

0.1.4 (stable), 0.1.3 (stable), 0.1.2 (stable), 0.1.1 (stable), 0.1.0 (stable)

ImageMagickライブラリの車輪の再発明(ヒマつぶしで作った。)

インストール

pear install openpear/Image_Combination

メンテナー

camelmasa (as lead)

リリース

0.0.1 (alpha)

概要

gif画像から色違いのgif画像を生成する。

ピュアPHPで書かれており、拡張ライブラリに依存していない。

gifのカラーテーブルを書き換えるだけなので軽い(はず)。

サンプル

sample.php

<?php
$converter = new Image_GifColorConverter;
$converter->put('0.gif', '0_converted.gif', array(0x000000 => 0xff0000, 0xffffff => 0xcccccc)); 
$converter->put('1.gif', '1_converted.gif', array(0x000000 => 0x0099ff));

0.gif -> 0_converted.gif

1.gif -> 1_converted.gif

インストール

pear install openpear/Image_GifColorConverter

メンテナー

anatoo (as lead)

リリース

1.0.0 (stable), 0.9.0 (beta)

日本の絵文字をUserAgentに合わせて変換してくれるライブラリ

概要

文字列中の絵文字用変換タグを絵文字コードもしくはimgタグに変換します。

例) [emosji:1]

  • docomoでアクセスした場合 > &#xE63E;
  • auでアクセスした場合 > &#xE488;
  • softbankでアクセスした場合 > &#xE04A;
  • 上記3キャリア以外、PC等 > <img src="/openper_JapaneseMobileEmoji/img/emoji/sun.gif" class="emoji emoji_1" />

使い方

インストール

pear install openpear/Japanese_Mobile_Emoji

依存

pear.php.net
Net_UserAgent_Mobile

メンテナー

makies (as lead)

リリース

0.1 (beta), 0.0.1 (alpha)

あずにゃんペロペロ

インストール

pear install openpear/Keion_Service_Symfony2Bundles

メンテナー

させざき (as lead)

リリース

0.0.2 (stable), 0.0.1 (stable)

O/R Mapperではない、DBアクセス用のユーティリティクラスです。

特徴としては以下となっています。

  • クラスメソッドとしてアクセス
  • DBアクセスとしてPDOを使用
  • 複合カラムPRIMARY KEYやPRIMARY KEYなしのテーブルに対応
  • 複数DBコネクションの切り替えに対応
  • 特定カラム値の自動生成

まだPostgreSQLに依存した部分があります。

インストール

pear install openpear/Keires_DB

メンテナー

KOYAMA Tetsuji (as lead)

リリース

0.2.0 (beta), 0.1.0 (alpha)

パッケージ概要

Rasmus Leodorf氏のsimple_rss.phpをベースにしたフィードパーザです。サポートしている形式は

  • RSS 0.91
  • RSS 1.0
  • RSS 2.0
  • ATOM 1.0
  • ATOM 2.0

です。

依存しているパッケージ

Keires_Feedを利用するにはHTTP_RequestとOpenpear_Utilが必要です.

インストール

pear install openpear/Keires_Feed

依存

openpear.org
Openpear_Util

メンテナー

KOYAMA Tetsuji (as lead), Sotaro KARASAWA (as lead), halt (as developer)

リリース

0.2.1 (stable), 0.2.0 (stable), 0.1.1 (beta), 0.1.0 (beta)

LazyFileIteratorは、ファイルの内容を1行づつ取得するようなイテレータです。

LazyFileIteratorはSplFileObjectと異なり、必要になってからファイルをオープンし、不要になるとファイルをクローズします。

SplFileObjectはオブジェクト生成のタイミングでファイルをオープンし、オブジェクトが存在する間はファイルもクローズしないため、大量のファイルに対して同数のイテレータを生成してしまうと、同数のファイルオープン数を消費してしまいます。LazyFileIteratorを利用すれば、この問題を回避することができます。

LazyFileIteratorは内部的にSplFileObjectを生成して利用しています。


機能

  • 初めてのメソッド呼びだしのタイミングでSplFileObjectを生成し、ファイルをオープンします。
  • ファイル終端まで読み込むと、SplFileObjectを解放し、ファイルをクローズします。
  • 一旦ファイルがクローズされた後でrewind()するとSplFileObjectを再度生成し、ファイルを再度オープンします。
  • 実ファイルが存在しないファイル(URLや標準入力など)をオープンする場合にはNoRewindIteratorを利用しますので、イテレータとして特に苦労せずに使えます。

動作例

catのように、引数のファイルを全て連結して表示するようなプログラムを示します。

AppendIteratorに、複数のLazyFileIteratorを与えています。SplFileObjectで同じことをすると、ファイルオープン数をファイル数と同数消費してしまいます。

<?php
require_once('LazyFileIterator.php');

$inputs = new AppendIterator();

$files = $_SERVER['argv'];
array_shift($files); // remove filename of myself

if ($files === array()) {
  $files[] = 'php://stdin';
}
foreach($files as $filename) {
  $inputs->append(new LazyFileIterator($filename, 'r'));
}

foreach($inputs as $line) {
  print $line;
}

インストール

pear install openpear/LazyFileIterator

メンテナー

hnw (as lead)

リリース

0.1.1 (stable), 0.1.0 (stable)

Simple PHP Template (twig like syntax)

インストール

pear install openpear/LightningTemplate

メンテナー

Keisuke SATO (as lead)

リリース

0.1.1 (stable)

LoggerIteratorは、SPLのイテレータにログを取る機能を追加するようなイテレータです。

例外の内容を標準出力または標準エラー出力に表示して再スローすること、getInnerIterator()で元のイテレータを返すこと、この2点以外は元のイテレータと同じ挙動です。

元のイテレータの全呼び出しを標準出力または標準エラー出力にログとして出力する機能もあります。

see http://openpear.org/package/LoggerIterator for details.

インストール

pear install openpear/LoggerIterator

メンテナー

hnw (as lead)

リリース

0.3.0 (stable), 0.2.2 (stable), 0.2.1 (stable), 0.2.0 (stable), 0.1.1 (stable), 0.1.0 (stable)

拡張子からMIME-Typeを判別します。

インストール

pear install openpear/MIME_Type_Extension_Mobile

依存

pear.php.net
MIME_Type

メンテナー

okonomi (as lead)

リリース

0.1.0 (beta)

流れるようなインターフェイスでAppleScriptコマンドの生成・実行をする。

インストール

pear install openpear/Mac_AppleScript

メンテナー

Ryusuke SEKIYAMA (as lead)

リリース

0.1.0 (beta)

AppleScript経由でGrowl通知する。

ネットワーク越しの通知をしたい場合やGrowl for Windowsに通知したい場合は Net_Growlで。

Mac_AppleScriptに依存します。

インストール

pear install openpear/Mac_Growl

依存

openpear.org
Mac_AppleScript

メンテナー

Ryusuke SEKIYAMA (as lead)

リリース

0.1.1 (beta), 0.1.0 (beta)

php port of Mail::Address::MobileJp

インストール

pear install openpear/Mail_Address_MobileJp

メンテナー

oppara (as lead)

リリース

0.091 (beta), 0.09 (beta)

概要

メールの送信が行えるPEAR Mailと

メールの受信が行えるNet_POP3を

ラップしてメールの送受信が簡単に出来るようにした

ライブラリです

機能一覧

  • Net_POP3を使用した簡易メール受信
  • PEAR::Mailを使用したメール送信
  • ファイルの添付
  • CCおよびBCC送信
  • メールの文字コードの自動検出
  • 使用ライブラリの判別(使わない機能のために使わないライブラリを要求しない)
  • インストールされたライブラリに応じた、使用出来る機能の表示機能
  • Smartyを使用した、本文におけるメールテンプレート機能
  • 送信確認画面支援機能
  • Smartyを使用する場合は、自動的にディレクトリを生成する

動作環境

  • PHP 5以降
  • Net_POP3必須(受信の場合)
  • Mail_mimeDecode必須(受信の場合)
  • PEAR::Mail必須(送信の場合)

送信と受信のサンプルは

sampleディレクトリにそれぞれ

Send.phpとGet.phpという名前で入っています


簡単/主要なメソッド紹介

getMail

メールを受信します。

その前にインスタンスから受信するための

設定を行う必要があります。

例:$mail->set('host', 'localhost');

引数にtrueを指定すると、Smartyの

foreachでまわしやすい配列の形で返します。


addDelete

インスタンスからaddDeleteにメッセージ番号を

入れていきます。

メッセージ番号は$mail->get('id')で取得可能です。

そして、deleteMsgメソッドへ・・・


deleteMsg

addDeleteで追加されたIDのメッセージだけを

削除します。


mailerinfo

所謂phpinfoみたいな機能です。

インストールされているライブラリを確認して

使える機能の一覧を返します。


send

メールを送信するメソッドです。

引数にtrueを入れると、送信確認用の

文字列を受け取る事が出来ます(当然ですが

その場合は送信される事はありません)


set

値をオブジェクトにセットします


get

指定された名前の値を取得します

インストール

pear install openpear/Mail_Mailer

メンテナー

FreeBSE (as lead)

リリース

2.0.0 (beta)

メールのヘッダと本文をパースしてXMLの形で保有し、XPath式で検索できるようにします。

使用例サンプルコード:

<?php 
require_once 'Mail/mime/XPath.php';
 
$doc = file_get_contents('hoge.eml');
 
$email = new Mail_mime_XPath($doc);
$part = $email->xpath('//*[@ctype_primary="text"]');
 
var_dump($part);

こうすると、content-typeがtext/*なデータの配列が取得できます。multipartのメールで本文だけ抜き出す場合なんかに超便利!

もうforeachして総当たりする必要ありません><


内部的には、PEARのMail_mimeDecodeでパースしたデータをもとに、SimpleXMLを使ってデータをXMLに直したうえで、XPathで検索、取得という処理をしています。

XPathで検索できる対象ですが、検索対象のデータ自体がMail_mimeに依存している関係から、Mail_mimeで配列のキーになっているものがXPathのノード名として使えます。

また、

  • content-type
  • ctype_primary
  • ctype_secondary
  • filename

という4つのデータだけは、各パートのプロパティとしても保持されているので、上記の例のようにこれらのプロパティで検索することによって、textパートの一覧とそのデータを抜き出すことが可能です。

PerlのEmail::MIME::XPathと違って正規表現的な方法は使えませんが、元々content-typeが分割されているので必要な処理はわりと柔軟に行うことができます。

インストール

pear install openpear/Mail_mime_XPath

メンテナー

yudoufu (as lead)

リリース

0.0.1 (alpha)

DocTest

クラスやメソッドの Doc コメントにテストを記述することで自動的に UnitTest を作成し実行することができるようになります。


ポインタ
  • TOM先生のテスト講座
    • http://www.phppro.jp/school/test/
  • PHPUnitポケットガイド
    • http://www.phpunit.de/pocket_guide/3.2/ja/index.html
  • kunitさんの日記
    • http://d.hatena.ne.jp/kunit/20080205#1202142580

Docコメント

クラス定義の上、またはメソッド定義の上にあり、「/**」で始まり「*/」で終わる形式のコメント

<?php
/**
 * サンプルクラス
 */
class Sample
{
    /**
     * メソッドサンプル
     *
     * @param string $arg
     * @return string
     */
    public function method($arg)
    {
        return 'sample';
    }
}
?>

テストの記述
  • Docコメントに<code>~</code>で囲まれた内容がテストクラスに出力されます。
  • <code>の直前に「#test <テストメソッド名>」を記述することでテストメソッド名を指定できます。省略した場合は、コメントの対象となるメソッド名が使用されます。
  • <code>ブロックは複数の場所に記述可能です。
  • # を使用した省略形があります(詳細は以下参照)
<?php
/**
 * サンプルクラス
 */
class Sample
{
    /**
     * メソッドサンプル
     *
     * #test
     * <code>
     * #eq('sample', #f('arg'));
     * </code>
     *
     * #test method_has_name
     * <code>
     * #ne('sample', #f('arg'));
     * </code>
     *
     * @param string $arg
     * @return string
     */
    public function method($arg)
    {
        return 'sample';
    }
}
?>
<?php
class SampleTest extends PHPUnit_Framework_TestCase
{
    private $obj;

    public function setUp()
    {
        $this->obj = new Sample;
    }

    public function tearDown()
    {
        $this->obj = null;
    }

    public function testMethod()
    {
        $this->assertEquals('sample', $this->obj->method('arg'));
    }

    public function testMethod_has_name()
    {
        $this->assertNotEquals('sample', $this->obj->method('arg'));
    }
}
?>

省略形一覧
  • #eq(); => $this->assertEquals();
  • #ne(); => $this->assertNotEquals();
  • #true(); => $this->assertTrue();
  • #false(); => $this->assertFalse();
  • #null(); => $this->assertNull();
  • #notnull(); => $this->assertNotNull();
  • #class => クラス名
  • #f => $this->obj-><メソッド名>();

インストール

pear install openpear/Maple4_DocTest

依存

pear.php.net
PEAR
pear.phpunit.de
PHPUnit

メンテナー

ぼぶちん (as lead)

リリース

0.2.2 (alpha), 0.2.1 (alpha), 0.2.0 (alpha)

ライブドア謹製レコメンドエンジンCicindelaのWebAPIラッパ

レコメンドエンジン自作する人はこれと同じWebAPIで作ればみんな幸せになるんじゃないかな。

インストール

pear install openpear/Net_Cicindela

依存

pear.php.net
HTTP_Request2

メンテナー

MugeSo (as lead)

リリース

0.2.1 (beta), 0.2.0 (beta), 0.1.0 (beta)

個人的には使いやすい。

でも若干HTTP_Request2の方が速い。

インストール

pear install openpear/Net_Curl2

メンテナー

eth0jp (as lead)

リリース

1.0.0 (stable)

HandlerSocket Plugin for MySQLのPHPクライアントです。


http://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL


使い方は今のところ、perlクライアントに合わせてあります。

http://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/blob/master/docs-ja/perl-client.ja.txt


sample:

$hs = new HandlerSocket('somehost', '9998');

$hs->openIndex(1, 'somedb', 'table1', 'PRIMARY', array('id', 'enable', 'body'));

$r = $hs->executeSingle(1, '=', array(1));

インストール

pear install openpear/Net_HandlerSocket

メンテナー

takada-at (as lead)

リリース

0.0.2 (alpha), 0.0.1 (alpha)

IPv4のネットワークをグルーピングして、IPアドレスからグループ名を高速に取得します。

sfMobileIPPluginをsymfonyから切り離して、汎用化したものです。

Cache_Lite,Net_IPv4,Spycに依存しています。

Spycはpearチャンネルからインストールできないので各自手動でインストールしてください。


sfMobileIPPluginと同様の動作をさせる例がこちらにあります。

インストール

pear install openpear/Net_IPv4_NetworkGroup

依存

pear
Cache_Lite, Net_IPv4
openpear
Spyc

メンテナー

MugeSo (as lead)

リリース

1.0.1 (stable), 1.0.0 (stable)

Kyoto Tycoon client library for PHP.

System requirement.

  • PHP5.3
  • HTTP_Request2
  • PHPUnit3.5

Usage

<?php
require_once 'Net/KyotoTycoon.php';
$kt = new \Net\KyotoTycoon(array('port' => 19780));
$kt->set('test_php', 'Hello KyotoTycoon!!');
var_dump($kt->get('test_php')); // Hello KyotoTYcoon!!

インストール

pear install openpear/Net_KyotoTycoon

メンテナー

heavenshell (as lead)

リリース

0.0.1 (beta)

MessagePack-RPC PHP impl.

インストール

pear install openpear/Net_MessagePackRPC

メンテナー

h0x10 (as lead)

リリース

0.0.1 (beta)

携帯キャリアのページからCIDRらしいものをとってきます。

regexpは拾いものだったり自分で書いたり


使い方:

$cidr = Net_MobileCIDR::Factory(Net_MobileCIDR::DOCOMO);

$cidr->getIPAddresses()

//array(5) {

// [0]=>

// string(15) "210.153.84.0/24"

// [1]=>

// string(16) "210.136.161.0/24"

// [2]=>

// string(15) "210.153.86.0/24"

// [3]=>

// string(16) "124.146.174.0/24"

// [4]=>

// string(16) "124.146.175.0/24"

//}


対応キャリア:

DOCOMO,SOFTBANK,EZWEB,WILLCOM,EMOBILE

ご利用は計画的に。

修正点:

12/26 Willcomのアドレスが間違ってたっぽいので修正

12/19 コードを短く&紛らわしいのでconstを大文字表記に統一

インストール

pear install openpear/Net_MobileCIDR

メンテナー

ちょびえ (as lead)

リリース

0.1.2 (stable), 0.1.1 (stable), 0.1.0 (stable)

PHP client library for Okuyama(Distributed key-value-store).

インストール

pear install openpear/Net_Okuyama

メンテナー

heavenshell (as lead)

リリース

0.0.2 (beta), 0.0.1 (stable)

ポケベル打ちの数値とカナの変換ライブラリ

インストール

pear install openpear/Net_Pocketbell

メンテナー

ketaiorg (as lead)

リリース

0.1.1 (beta), 0.1.0 (stable)

Summary

Provides interface to Q4M(Queue for MySQL).

http://q4m.31tools.com/

License

The MIT License

http://opensource.org/licenses/mit-license.html

Usage

$queue = new Net_Q4M();
$queue->connect('mysql://user:[email protected]:3306/database');                                                  

$row = $queue->dequeue('my_queue');
//$row = $queue->dequeue('my_queue', 5);   // set timeout to 5 seconds
//$row = $queue->dequeue('my_queue', 'my_queue2', 'my_queue3', 10);
if (process_row($row)) {
  $queue->end();
} else {
  $queue->abort();
}
$queue->disconnect();

インストール

pear install openpear/Net_Q4M

メンテナー

castor (as lead)

リリース

0.1.0 (beta)

Tiarraのソケットを使って発言ができます。

インストール

pear install openpear/Net_Socket_Tiarra

メンテナー

Sotaro KARASAWA (as lead)

リリース

0.1.0 (stable)

TokyoTyrantをPHPから利用するためのPurePHPライブラリです。

インストール

pear install openpear/Net_TokyoTyrant

メンテナー

個々一番 (as lead)

リリース

0.2.1 (beta), 0.2.0 (beta), 0.1.3 (beta), 0.1.2 (beta), 0.1.1 (beta), 0.1.0 (beta)

PATH_INFO から取得した値をパースしてディスパッチするライブラリです。

コントローラクラスもしくはアクションクラスいずれかを使用できます。

Net_URL_Mapper に依存しています。

インストール

pear install openpear/Net_URL_Dispatcher

メンテナー

heavenshell (as lead)

リリース

0.2.0 (beta), 0.1.1 (beta)

携帯端末のできること・できないことを判定します。

インストール

pear install openpear/Net_UserAgent_Mobile_Capability

メンテナー

okonomi (as lead)

リリース

0.1.0 (beta), 0.0.1 (alpha)

携帯電話の端末固有IDを扱うライブラリです。

サンプル

<?php

require_once 'Net/UserAgent/Mobile/UserID.php';


try {
    $userid = Net_UserAgent_Mobile_UserID::factory();
} catch (Net_UserAgent_Mobile_UserID_Exception $e) {
    var_dump($e->getMessage());
    exit;
}

echo $userid->getID();

インストール

pear install openpear/Net_UserAgent_Mobile_UserID

依存

pear.php.net
Net_UserAgent_Mobile

メンテナー

okonomi (as lead)

リリース

0.1.3 (beta), 0.1.2 (beta), 0.1.1 (beta), 0.1.0 (beta)

A DocTest tool. Main repository is here:

http://bitbucket.org/szktty/norfdoctest/

インストール

pear install openpear/NorfDocTest

メンテナー

szktty (as lead)

リリース

0.7.0.2 (stable), 0.7.0.1 (stable), 0.7.0 (stable)

Perlのnull filehandleオペレータ「<>」と同じ動作を行うイテレータです。


動作例

Perlでは、「<>」オペレータを使ってフィルタプログラムが簡単に記述できます。例えば、全ての英大文字を英小文字に書き換えるフィルタは下記のように書けます。

#!/usr/bin/perl
while (<>) {
  tr/A-Z/a-z/;
  print;
}

このスクリプトは、引数が無い場合は標準入力に対するフィルタとして動作します。引数がある場合は、与えられた引数をファイル名とみなし、全てのファイルに対して順にフィルタを適用します。

この動作を真似たイテレータがNullFilehandleIteratorです。これを使うと、上記のPerlスクリプトと同じことがPHPでも比較的簡潔に記述できます。

<?php
require_once('NullFilehandleIterator.php');

$it = new NullFilehandleIterator();
foreach ($it as $line) {
  print strtolower($line);
}

依存関係

以下のクラスを利用しています。

また、PHP5.1.0以降で利用できる、以下のSPLのイテレータクラスを利用しています。


ソースコード

http://openpear.org/repository/NullFilehandleIterator/trunk/src/NullFilehandleIterator.php

インストール

pear install openpear/NullFilehandleIterator

依存

openpear.org
IgnoreExceptionIterator, LoggerIterator, LazyFileIterator

メンテナー

hnw (as lead)

リリース

0.1.0 (stable)

皆で共通化するとうれしい部分をパッケージ化しましょう。誰でも変更可に設定してありますので、汎用的に使う関数やクラスがあったら、じゃんじゃん追加して下さい。

共通化したライブラリのロード

Openpear_Util::import("library_name");

でライブラリをロードできます。上記の構文は、Openpear/Util/library_name.php を include します。

現在有効なパッケージ

array_val
ExceptionWrapper

インストール

pear install openpear/Openpear_Util

メンテナー

KOYAMA Tetsuji (as lead), halt (as developer)

リリース

1.0.1 (stable), 0.1.0 (stable)

PEARパッケージを簡単に作成するためのスクリプトです。

使い方は、新ドキュメント

http://servlet.sakura.ne.jp/PEAR_PackageProjector/doc/

を参照してくださいな。

openpearからインストールできるようになりました。

以降、管理はopenpear移ろうかと思います。

インストール

pear install openpear/PEAR_PackageProjector

依存

pear.php.net
PHP_CodeSniffer, Console_Getargs, PEAR_PackageFileManager2, PEAR_PackageFileManager_Plugins, phpdocumentor
openpear.org
HatenaSyntax

メンテナー

坂本弘一 (as lead)

リリース

1.0.3 (stable), 1.0.2 (stable), 1.0.1 (stable), 1.0.0 (stable), 0.2.2 (stable), 0.2.1 (stable), 0.2.0 (stable)

PEGパーサコンビネータ。

正規表現では難しい再帰を含む文法規則を解釈できる。

メモ化もできるのでPackrat Parserとも同等。

また、文字列だけではなく配列も解釈できる。

HatenaSyntaxパッケージはこれを用いて構築されている。

ドキュメント

インストール

pear install openpear/PEG

メンテナー

anatoo (as lead)

リリース

1.0.1 (stable), 1.0.0 (stable), 0.9.5 (beta), 0.9.4 (beta), 0.9.3 (beta), 0.9.2 (beta), 0.9.1 (beta), 0.9.0 (beta), 0.1.5 (alpha), 0.1.4 (alpha), 0.1.3 (alpha), 0.1.2 (alpha), 0.1.1 (alpha), 0.1.0 (alpha)

PHPのphpinfo()で出力される画面を生成します。

使い方

<?php

require_once("MakeInfo.php");

$contents = array(

'Sample1' => 'Enable1',

'Sample2' => 'Enable2',

'Sample3' => 'Enable3',

'Sample4' => 'Enable4',

'Sample5' => 'Enable5',

);

$make = new MakeInfo("Sample", "Sample Enables List", $contents);

?>

インストール

pear install openpear/PHP_MakeInfo

メンテナー

FreeBSE (as lead)

リリース

1.0.0 (beta)

PHPスクリプトを難読化するためのPEARパッケージです。詳細は以下を参照。

  • http://d.hatena.ne.jp/shimooka/20100625/1277433024
  • http://d.hatena.ne.jp/shimooka/20100702/1278071792

インストール

pear install openpear/PHP_Obfuscator

依存

pear.php.net
Console_CommandLine

メンテナー

SHIMOOKA Hideyuki (as lead)

リリース

1.0.3 (stable), 1.0.2 (stable), 1.0.1 (stable), 1.0.0 (stable), 0.9.0 (beta), 0.1.0 (beta)

PHPを純粋なオブジェクト指向プログラミング言語っぽく書けるようにする。

主にメソッドチェーンするためのライブラリ。


サンプル

require_once 'PHP/Object.php';

function p($data) {
    return PHP_Object::factory($data);
}

$array = p(array('foo', 'bar')); // Arrayオブジェクトの作成
$array->push('baz');             // array_pushのエイリアス
$array->var_dump;                // 引数がない場合、括弧は省略できる
/* 出力結果
&array(3) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
}
*/

$array = p('Hello,World!')       // Stringオブジェクトを作成
       ->replace('World', 'PHP') // WorldをPHPに置換、str_replaceのエイリアス
       ->echo                    // Hello,PHP! を出力
       ->explode(',')            // 「,」で分割しArrayオブジェクトにして返す
       ->tap('rsort');           // rsortメソッドをコールし、自分自身を返す

foreach ($array as $value) {
    $value->echo; // PHP!、Helloの順に出力
}

その他のサンプル

PHPマニュアルをパースする


特徴

  • 全てのPHP関数をメソッドとして呼び出せる
  • 引数をとらないメソッドの括弧は省略できる
  • メソッドが返す値は全てPHP_Objectオブジェクト(配列のキーや一部メソッドを除く)
  • echo、printなど、PHPの言語構造をメソッドとして呼び出せる
  • 戻り値がない(void)関数を、メソッドとして呼び出した時は、代わりに自分自身を返す
  • メソッドの引数に、そのままPHP_Objectオブジェクトを渡すことができる
  • Arrayオブジェクトは通常の配列型のようにforeachでのループや、[]を使ったアクセスができる
  • Arrayオブジェクトからのメソッド呼び出し時にはメソッド名の「array_」を省略できる
  • Stringオブジェクトからのメソッド呼び出し時にはメソッド名の、「str」と「str_」を省略できる

リファレンス


PHP_Object : : val

オブジェクトが持つ元の値を取得します(Stringオブジェクトから呼び出した場合、文字列など)。

mixed PHP_Object::val()
返り値
オブジェクトが保持する値

PHP_Object : : tap

method で指定したコールバックメソッドをコールし、その戻り値ではなく自分自身を返します。

PHP_Object PHP_Object::tap(callback $method [, mixed $param [, mixed $...]])
method
コールするメソッド
param
このメソッドに渡すパラメータ
返り値
メソッドを呼び出したオブジェクト自身

PHP_Object : : argOffset

引数の内容の関数を呼び出した際に、オブジェクトの保持する値が引数の何番目に渡されるかをオフセット値で返します。

mixed PHP_Object::argOffset(string $func_name)
func_name
関数名の文字列
返り値
ゼロからはじまる引数のオフセット値が返されます。引数に値が渡されない場合にはnullが返ります。

インストール

pear install openpear/PHP_Object

メンテナー

lagos (as lead)

リリース

0.3.0 (alpha), 0.2.1 (alpha), 0.2.0 (alpha), 0.1.0 (alpha)

Perlにある関数や便利機能のPHP移植です。

インストール

pear install openpear/PHP_Perlish

メンテナー

okonomi (as lead)

リリース

0.1.0 (beta)

密かに暖めてきたネタですが

なんか、Openpear_Utilに先を越された感じに(^^;

ですが、こちらのコンセプトは

汎用ではなく、あったらいいなというような

PHPのかゆい部分に手が届くライブラリです。


因みに命名ですが

Microsoft社が開発した公式のWindowsカスタマイズツール

Microsoft PowerToys for Windows

に由来しています


各メソッドについての説明


getInstance

これは、クラスファクトリーそのままです。

ファイル名とクラス名が一緒であれば

そのままインスタンスとして取得してくる事が可能です。

getPearI

PEARライブラリ向けのクラスファクトリーです。

使い方としては、いつも皆様がpearコマンドを使って

インストールする風な感じでOKです(例:Net_POP3)

getPear

同じくPEARライブラリ向けのクラスファクトリーです。

ですが、これは上記と違いファイル名を指定して

インスタンスを持ってくるメソッドです。

arrayKeyReplace

連想配列のキー名を、順序を保ったまま

置き換えるためのメソッドです。

因みに、違うキーで同じデータを入れても

新たに配列が生成されてしまうだけです。

仕事で必要になったため、PHP関数リファレンスを

覗いてもこのようなメソッドがなかったため

作成いたしました。

is_file_ex

Ethnaに影響を受けました。

通常のis_fileではInclude_pathを

見に行かないので、作成しました(コピペではありません)

因みにMail_Mailerクラスでも実装しています。

save_var_dump

var_dumpした結果はprint_rと違い

通常はファイルとして保存する事が出来ません。

それを保存出来るように拡張したメソッドです。

checkBom

UTF-8なデータに相性の悪いBOMがないかチェックします。

removeBom

UTF-8からBOMを削除して返します。

addBom by 0.2.0

通常ならBOM排除なのですが、これは逆に

BOMを付加します。

過去のエディタを使っている人向けですが

需要はないでしょう。

iopen

GDでそのまま画像を開こうとすると

識別してからimagecreatefrom(jpeg|gif|png)

という形で選ばなければなりません。

これは非常に厄介な問題なので

指定された画像の形式を自動識別して

リソース情報を返すメソッドです

命名はfopenという関数があるので、それに習いました。

但し、このメソッドはやや不安定なところがあるので注意が必要です(mspaintのjpegはなんか癖がある事が判明?

0.2.0

BMPファイルに対応させました

ImageCreateFromBMP by 0.2.0

BMPファイルを開きGDリソースとして返します。

出典

http://jp.php.net/manual/ja/function.imagecreate.php#53879

imagebmp by 0.2.0

BMPファイルを保存します。

出典

http://php.benscom.com/manual/ja/ref.image.php

print_r_ex

変数の中身を展開するprint_r関数ですが

ブラウザ上で見ると非常に見辛いです。

これは、改行コードで単にブラウザに沿ってないだけの

問題ですが、それをブラウザからでも確認しやすくします。

objectClone

PHP5からは「&」を用いた参照代入をしなくても

シャローコピーになるようになりました。

もしディープコピーがしたい場合にはcloneを用いる

必要がありますが、深い階層の場合はcloneでは

事足りない事があるそうです、このメソッドでは

その部分を補います。

file_get_contents_ex

場合によっては、危険なメソッドになるかもしれませんが

php.iniの設定で「allow_url_fopen」が

offにされていても、外部のコンテンツを取りにいけます。

因みに「allow_url_fopen」はini_setで値を変更する事は出来ません。

extensionExist by 0.2.0

PHP拡張ファイルの有無を確認します。

例えばGDがない状況でimagecreatefromjpeg

をするとエラーの原因になってしまいますので

これを挟むと幸せになるかもしれません。

imlibResizer by 0.2.0

GD imagick以上に高速画像編集が可能だという

imlib2の拡張を使ったリサイズメソッドです。

但し、私の環境ではコンパイル出来なかったり

セグメントフォルトが起きたりして確認

出来なかったので、コード自体は

ドキュメントによる勘です。

in_array_ex by 0.2.0

PHPには配列の中に該当文字があるか調べる

in_array関数がありますが、このメソッドは

それを正規表現に対応させたものです。

iniParser by 0.2.0

Windowsでよく使われる設定ファイルである

iniファイルをパースして配列で返すメソッドです。

hexFromFile by 0.2.5

ファイルの中身を16進数で返すメソッドです。

binFromFile by 0.2.5

ファイルの中身を2進数で返すメソッドです。

garbageCollection by 0.2.5

メモリの開放を行うメソッドです。

信憑性確認してませんがw

compressMobileHtml by 0.2.5

HTMLを圧縮する(と言っても文字的に)メソッドです。

携帯電話向けの機能なので、このような

メソッド名となっています。

携帯向けHTMLを作成する際は保守目的でインデント

改行とかを気にしなくてはなりませんが

実行時には、携帯からソースを見るとか

それがないから、おかしくとかがありませんし

また、携帯ではdeflateが効かないので

トラフィックの向上にも繋がると思います。

使い方はsample.phpにも書いていますが

インスタンス生成の際に

$pt = new PHP_Powertoys('compress');

と記述して下さい。



以上0.2.5で改良、追加した機能の一覧を含めました。

使い方はサンプルコードをご覧下さい。

インストール

pear install openpear/PHP_PowerToys

メンテナー

FreeBSE (as lead)

リリース

0.2.9 (stable), 0.2.6 (stable), 0.2.5 (stable), 0.2.0 (stable), 0.1.0 (stable)

Phoblinks (PHP Object Links) is an object system.

Main repository is http://bitbucket.org/szktty/phoblinks/

Documentation (Japanese)

インストール

pear install openpear/Phoblinks

メンテナー

szktty (as lead)

リリース

0.7.0.1 (beta), 0.7.0 (beta)

携帯絵文字変換ライブラリ


想定するユースケース

  • サイトのエンコーディングがShiftJIS(cp932)
  • DBに格納する文字列はutf-8エンコーディング

サポートする機能

  • 絵文字sjisバイナリをutf-8バイナリに変換
  • キャリア間の絵文字変換

インストール

pear install openpear/PictgramConverter

メンテナー

takada-at (as lead)

リリース

0.0.1 (alpha)

WEB+DB PRESS Vol.48のPHP連載記事のために作りました。

インストール

pear install openpear/Sample_Webdb48

メンテナー

webdb48_php (as lead)

リリース

0.1.0 (alpha)

汎用的なリストライブラリ。

このライブラリは、オブジェクト指向であること、扱いやすい事、パワフルであることを目指す。

インストール

pear install openpear/Sequence

メンテナー

anatoo (as lead)

リリース

0.9.0 (beta), 0.1.3 (alpha), 0.1.2 (alpha), 0.1.1 (alpha), 0.1.0 (alpha)

連続した整数を順に返すイテレータ。コンストラクタ第二引数を省略すると無限に動作します。

インストール

pear install openpear/SequenceProducer

メンテナー

hnw (as lead)

リリース

1.0.0 (stable)

Ustream API(http://developer.ustream.tv/)を利用する為のライブラリ。

需要があるかどうかは…知りません:)

使い方

require_once 'Service/Ustream.php';

$cmd = 'stream'; // user, channel, video, stream, system
$apiKey = 'your_apikey_here';

$ust = Service_Ustream::factory($cmd, $apiKey);
$result = $ust->getRecent();

@see http://developer.ustream.tv/docs

インストール

pear install openpear/Service_Ustream

依存

pear.php.net
XML_Serializer, HTTP_Request2

メンテナー

gagne (as lead)

リリース

0.1.0 (alpha)

ATND API (http://api.atnd.org/)を操作するパッケージです。

インストール

pear install openpear/Services_ATND

メンテナー

localdisk (as lead)

リリース

0.1.0 (beta)

これはなあに?

プロジェクト管理ツールBacklog(http://backlog.jp/)のAPIを操作します。

使い方

<?php
require_once 'Services/Backlog.php';
$backlog = new Services_Backlog('demo.backlog.jp', 'demo', 'demo');
$result = $backlog->getProjects();

依存パッケージ

XML_RPC
http://pear.php.net/package/XML_RPC

インストール

pear install openpear/Services_Backlog

メンテナー

devworks (as lead)

リリース

0.1.0 (beta)

概要

bit.ly APIを叩くライブラリです。

j.mpにも対応しています。

shortenとexpandを実装しています。

  • version0.3.0になりました。
    • bit.ly APIversion3.0に対応しました。
    • format=txtに対応しました。
    • format=xmlの場合の処理をsimplexml_load_stringに戻しました。これに伴い、PEAR::XML_Seriarizerの依存はなくなりました。

使い方

<?php
require_once 'Services/Bitly.php';

$login = 'Bitlyのアカウント';
$apikey = 'BitlyのAPI Key';

try {
    $bitly = new Services_Bitly($login,$apikey);
    $shorten = $bitly->shorten("http://openpear.org/package/Services_Bitly");
} catch (Services_Bitly_Exception $e) {
    echo $e->getMessage();
}

try {
    $bitly = new Services_Bitly($login,$apikey);
    $expand = $bitly->expand($shorten);
} catch (Services_Bitly_Exception $e) {
    echo $e->getMessage();
}


// j.mp対応

try {
    $bitly = new Services_Bitly($login,$apikey);
    $bitly->setBaseDomain('j.mp');
    $shorten = $bitly->shorten("http://openpear.org");
} catch (Services_Bitly_Exception $e) {
    echo $e->getMessage();
}

try {
    $bitly = new Services_Bitly($login,$apikey);
    $bitly->setBaseDomain('j.mp');
    $expand = $bitly->expand($shorten);
} catch (Services_Bitly_Exception $e) {
    echo $e->getMessage();
}

インストール

pear install openpear/Services_Bitly

メンテナー

tknzk (as lead)

リリース

0.3.0 (beta), 0.2.0 (beta), 0.1.0 (beta), 0.0.1 (alpha)

description

Buzzurl(http://buzzurl.jp)のAPIをPHPから利用するためのライブラリです。


Buzzurl API

http://labs.ecnavi.jp/developer/buzzurl/api/


version

0.0.7-alpha

dependencies

cURL

http://php.net/manual/ja/book.curl.php


example

<?php

$id = 'tell-k' //<= your buzzurl id

$api = Services_Buzzurl::getInstance();
$result = $api->getReaders($id);

foreach($result as $user)  {
      print $user . "<br />\n";
}

$api->setFormat('json');
$result = $api->getReaders($id);

print $result . " <br />\n"; //print json data

//add bookmark
$api = Services_Buzzurl::getInstance();
$email  = ''; //<= your buzzurl login id(email)  
$passwd = ''; //<= your buzzurl password
$args   = array('url' => 'http://buzzurl.jp');
$result = $api->add($email, $passwd, $args);
 
if ($result) {
    print 'add bookmark success' . "<br />\n";
} else {
    print 'add bookmark failed' . "<br />\n" ;
}



test

pearのtestディレクトリに移動して、テストコードが実行できます。

limeを利用しています。


cd /usr/share/pear/test/Services_Buzzurl/
php test_all.php 

todo

(2010/06/15 完了) 投稿APIが未対応 http://labs.ecnavi.jp/developer/2007/03/api_2.html

インストール

pear install openpear/Services_Buzzurl

メンテナー

tell-k (as lead)

リリース

0.0.7 (alpha), 0.0.6 (alpha), 0.0.5 (alpha), 0.0.4 (alpha), 0.0.3 (alpha), 0.0.2 (alpha), 0.0.1 (alpha)

図書館APIを叩くライブラリ

http://blog.calil.jp/p/api.html

インストール

pear install openpear/Services_Calil

メンテナー

tknzk (as lead)

リリース

0.0.1 (alpha)

Services_Foursquare

Implementation of foursquare API

main repository is https://github.com/isamu/php-foursquare

FoursquareのAPIのライブラリです。

インストール

pear install openpear/Services_Foursquare

メンテナー

いさむ (as lead)

リリース

0.0.1 (alpha)

GoogleChartAPI QR CodesのAPIを叩くライブラリです

http://code.google.com/intl/ja/apis/chart/docs/gallery/qr_codes.html

インストール

pear install openpear/Services_GoogleChartApiQR

メンテナー

tknzk (as lead)

リリース

0.0.1 (alpha)

Google Calendar Data APIをラップしたクラスです。

終日イベントの追加・削除・編集が可能です。

PHP4・PHP5のいずれでも利用可能です。


依存パッケージ

  • HTTP_Client
  • XML_Serializer

使い方

1) イベント情報を取得する

require_once 'Services/Google/Calendar.php';

// initialize
$gc = new Services_Google_Calendar();

// get events data
$public_data = $gc->getEvents($gmail_id);

// get events data (private mode)
$private_data = $gc->getEvents($gmail_id, $hash);

2) イベントを追加する

require_once 'Services/Google/Calendar.php';

// initialize
$gc = new Services_Google_Calendar($gmail_id, $passwd);

// set event data
$entry['title']        = 'Event title';
$entry['content']      = 'Event description';
$entry['where']        = 'Where the event helds';
$entry['when'][0]      = '2006-10-20';
$entry['when'][1]      = '2006-10-24';
$entry['transparency'] = 'transparent';
$entry['visibility']   = 'private';

// add an event
$result = $gc->addEvent($entry);

今後の機能追加(予定)

  • 時間指定のイベントへの対応
  • タイムゾーンの考慮
  • Zend GData Libraryをベースにした設計変更?

インストール

pear install openpear/Services_Google_Calendar

依存

pear.php.net
HTTP_Client, XML_Serializer

メンテナー

hoyo (as lead)

リリース

0.1.1 (beta), 0.1.0 (beta)

アシアルが提供しているHTML2PDFのAPIを利用するライブラリ。

http://html2pdf.biz

http://project-p.jp/halt/anubis/blog_show/913

コード本体はcodereposにあります。

インストール

pear install openpear/Services_HTML2PDF

メンテナー

halt (as lead)

リリース

0.1.0 (beta)

環境省が運用する花粉観測システム「はなこさん」(http://kafun.taiki.go.jp/)用のデータを引っこ抜くパッケージで、DSAS開発者の部屋:花粉の飛散量を取得する Perlモジュールのportです。

HTTP_Request2に依存していますので、インストールする際に-aオプションを付けてください。

$ sudo pear install -a openpear/Services_Hanako-alpha

使い方は、以下の通り。DSAS開発者の部屋:花粉の飛散量を取得する Perlモジュールも参照してください。

<?php
require_once "Services/Hanako.php";

$hanako = new Services_Hanako(new HTTP_Request2(), '03', '50810100');
var_dump($hanako->now());

なお、★★★「はなこさん」のデータは転用・営利目的とした利用を禁止しています★★★。あくまで個人利用に限定するようにしてください。

インストール

pear install openpear/Services_Hanako

依存

pear.php.net
HTTP_Request2

メンテナー

SHIMOOKA Hideyuki (as lead)

リリース

0.2.0 (alpha), 0.1.0 (alpha)

インストール

pear install openpear/Services_MixiAPI

依存

pear.php.net
HTTP_Request

メンテナー

SHIMOOKA Hideyuki (as lead)

リリース

0.2.2 (alpha)

フォト蔵APIをPHPから割と簡単に操作するライブラリ.まだすべてのAPIを完全にサポートしているわけではありません.

依存パッケージ

HTTP_Requestが必要です。

trunk

主な変更点
  • photo_infoでview_numがとれてなかった問題を修正
  • photo_infoでvideo_urlがなくなっていたので削除
  • photo_infoでdescriptionがとれてなかった問題を修正
  • テスト追加(photo_info)
  • エラーメッセージが複数行の場合に対応
  • エラーメッセージの変更に追従

version 1.3.0 ( 2009-08-20 )

主な変更点
  • user_infoメソッド実装
  • テストの追加
  • メソッドの定義順序をAPIドキュメントに準拠させた

version 1.2.0 ( 2008-02-27 )

主な変更点
  • アップロード枚数が限界に到達した時のエラーコードを追加
  • PEAR::Errorのエラーメッセージにエラーコードを追加
  • CDATAのstrip

リポジトリについて

リポジトリ自体はcodereposを利用しています。

リンクの方法は、 ( http://d.hatena.ne.jp/sotarok/20090129 ) を参考にしました。

インストール

pear install openpear/Services_Photozou

メンテナー

halt (as lead)

リリース

1.4.0 (stable), 1.3.0 (stable), 1.2.0 (stable)

Prowlに投げるやつ。

インストール

pear install openpear/Services_Prowl

メンテナー

halt (as lead)

リリース

0.5.0 (beta)

楽天ウェブサービスのAPIをPHPから利用するライブラリです。

インストール

pear install openpear/Services_Rakuten

依存

pear.php.net
HTTP_Request, XML_Serializer

メンテナー

Masashi Shinbara (as lead)

リリース

0.2.2 (beta)

とりあえずこの辺のものをコピーしておく

インストール

pear install openpear/Services_Recruit

依存

pear.php.net
HTTP_Request, XML_Serializer

メンテナー

Tadashi *ELF* Jokagi (as lead)

リリース

0.2.1 (alpha), 0.1.1 (alpha)

SBM(ソーシャルブックマーク)の情報を取得するライブラリです。


SBMの情報:

- ブックマーク数

- ブックマーク数の単位 (user|users) (tweet|tweets)

- ブックマーク数のランク (色の変わるブックマーク数に応じたランク)

- ブックマークコメント

- エントリーページのURL

- 追加ページのURL


対応しているSBMサービス:

- はてなブックマーク (Hatena)

- Delicious (Delicious)

- livedoorクリップ (Livedoor)

- Buzzurl (Buzzurl)

- Twitter (Twitter)

インストール

pear install openpear/Services_SBM_Info

依存

pear.php.net
HTTP_Request2

メンテナー

Rewish (as lead)

リリース

0.3.1 (beta), 0.3.0 (beta), 0.2.2 (beta), 0.2.1 (beta), 0.2.0 (beta), 0.1.1 (beta), 0.1.0 (beta)

したらばBBSにおいて以下のことを行う

・NGワードによる一括削除

・1000行ったスレを倉庫送り

・スレッド、レスの取得


以下に依存しています

・Zend_Http_Client

・Zend_Http_Cookie

その他

・Pearコーディング規約に沿ってないので修正必須

・PHPとPearのバージョンは初期値のままなんでもっと昔のでも動くと思う

・楽に削除、倉庫送りしたいという理由で開発したので書き込み機能はありません

・したらばはAPIが無いのでブラウザの挙動を無理矢理真似させています。よって管理画面が少し変わっただけで動かなくなる可能性大。


使用例

//OpenPear/Services/Shitaraba

require_once('Services/Shitaraba.php');

//引数はジャンル、掲示板番号、管理画面パスワード

$shitaraba=new Services_Shitaraba('gerne','123456789','password');

//各パラメータを個別にセット

$shitaraba->setGerne('gerne');

$shitaraba->setBbsnum('123456789');

$shitaraba->setPw('password');

//全スレッドリストを取得

$ret=$shitaraba->getThreadList();

//特定のスレッドを取得

$ret=$shitaraba->getThread('123456789');

//全スレッドの全データを取得

$ret=$shitaraba->getAllThreadData();

//NGワードが含まれる発言を取得

$ret=$shitaraba->getNGThreadData('あああああ');

//NGワードが含まれる発言を削除

$ret=$shitaraba->deleteNGThreadData(

$shitaraba->getNGThreadData('あああああ')

);

//全発言数を指定(1000以外に変更している場合に使用)

$ret=$shitaraba->setMaxNumber(2000);

//1000(setMaxNumber)行ったスレを取得

$ret=$shitaraba->getDatThreadList();

//1000(setMaxNumber)行ったスレをdat落ちさせる

$ret=$shitaraba->datThread(

$shitaraba->getDatThreadList()

);

//特定のスレをdat落ちさせる

$ret=$shitaraba->datThread(

array(123456,234567)

);


2010/04/20頃

dat落ち機能が効かなくなってたのを修正。

つーかいいかげんAPI作れと

インストール

pear install openpear/Services_Shitaraba

メンテナー

NurseAngel (as lead)

リリース

1.0.3 (stable), 1.0.2 (stable), 1.0.1 (stable), 0.1.0 (beta)

goo.glによるURL短縮サービスのラッパーで、PEAR::Services_ShortURLのサブパッケージです。 とりあえずのアナウンスは、はてダを参照してください。 http://d.hatena.ne.jp/shimooka/20091218/12610..

インストール

pear install openpear/Services_ShortURL_Googl

メンテナー

SHIMOOKA Hideyuki (as lead)

リリース

0.2.0 (beta), 0.1.0 (alpha)

THANKSのAPIを叩く

alphaとしてリリース

http://thanks.kayac.com

インストール

pear install openpear/Services_Thanks

メンテナー

tknzk (as lead)

リリース

0.0.1 (alpha)

http://www.3lines.info/

の JSON API を使うライブラリ。

インストール

pear install openpear/Services_ThreeLines

メンテナー

Sotaro KARASAWA (as lead)

リリース

0.1.0 (alpha)

Twitterの"2 minutes ago"とか"10 days ago"とかを簡単にしてしまおうというライブラリです。

全然デバッグしていないので、報告お待ちしております。

インストール

pear install openpear/Services_Twitter_Time

メンテナー

camelmasa (as lead)

リリース

1.0.0 (alpha)

Ustream API (http://developer.ustream.tv/)を利用するライブラリ。

>>注:現在使える代物ではありませんm(_ _)m<<

未実装(0.2.0時点)

Services_Ustream_Channel
::listAllChannels
::getComments
::getTags

使い方

<?php
require_once 'Services/Ustream.php';

// user(hoge)のビデオリストを取得
$ust = Services_Ustream::factory('user');
$results = $ust->listAllVideos('hoge');

// yyyy-mm-ddのビデオを検索
$ust = Services_Ustream::factory('search');
$results = $ust->command('video')->all()
               ->where('created')->eq('yyyy-mm-dd')
               ->query();

依存パッケージ

HTTP_Request2
http://pear.php.net/package/HTTP_Request2
XML_Serializer
http://pear.php.net/package/XML_Serializer

インストール

pear install openpear/Services_Ustream

依存

pear.php.net
XML_Serializer, HTTP_Request2

メンテナー

gagne (as lead)

リリース

0.2.1 (alpha), 0.2.0 (alpha), 0.1.0 (alpha)

vi.lyのAPIを叩くライブラリです

http://vi.ly

インストール

pear install openpear/Services_Vily

メンテナー

tknzk (as lead)

リリース

0.0.2 (alpha), 0.0.1 (alpha)

現在の詳細な気象情報を提供してくれる

WeatherUnderground

http://nihongo.wunderground.com

のAPIを簡単に使えるようにするパッケージ


使い方

$wg = new Services_WeatherUnderground('都市名');

$weather = $wg->getWeatherData();

必要最低限の天気観測データが欲しい場合は

getWeatherDataメソッド

APIが提供する全てのデータが欲しい場合は

getRawWeatherDataメソッド

を各々わけてお使い下さい。


返されるデータは配列で、各々

city = 街

country = 国名

image = 天気アイコン(画像)

observation_location = 観測地

observation_time = 観測時間(JST 西暦4桁)

temp = 摂氏

humidity = 湿度

wind_dir = 風向き

wind_speed = 風速

pressure = 気圧


詳細はサンプルをご覧下さい。

尚、観測間隔はおよそ1時間です。

インストール

pear install openpear/Services_WeatherUnderground

依存

pear.php.net
Cache_Lite, HTTP_Client

メンテナー

FreeBSE (as lead)

リリース

0.2.0 (stable), 0.1.5 (stable), 0.1.1 (stable), 0.1.0 (stable), 0.0.1 (beta)

AutoPagerizeのバックエンドに用いられることで知られる、WedataのAPIを利用するためのライブラリです。

自作のZFベースのものを、PEARのHttp_Request使用に移植したパッケージです。

かつては、アイドル情報を参照するにはAcme_○○というコンポーネントを用意する必要がありました。

今は、idoldbを参照すればいいのです。


使い方

<?php
require_once 'Services/Wedata.php';
var_dump(Services_Wedata::getDatabase('AutoPagerize'));
?>

インストール

pear install openpear/Services_Wedata

メンテナー

させざき (as lead)

リリース

0.1.1 (alpha), 0.1.0 (alpha)

概要

Service_Yahoo_JPのサブパッケージで、日本語係り受け解析APIへのアクセスを容易にします。

備考

Services_Yahoo_JP_Textから名称変更

インストール

pear install openpear/Services_Yahoo_JP_DA

依存

pear.php.net
Services_Yahoo

メンテナー

SHIMOOKA Hideyuki (as lead)

リリース

0.1.0 (alpha)

概要

Service_Yahooのサブパッケージで、ルビ振りAPIへのアクセスを容易にします。

インストール

$ sudo pear install -a Services_Yahoo_JP_Furigana

サンプルコード

<?php
require_once 'Services/Yahoo/JP/Furigana.php';

try {
    $yahoo = Services_Yahoo_JP_Furigana::factory('furigana');
    $yahoo->withAppID(getenv('YAHOO_APP_ID'));
    $yahoo->setSentence('うちの庭には鶏がいます。');
    $yahoo->setGrade(1);
    $result = $yahoo->submit();

    $str = null;
    foreach ($result as $word) {
        $str .= isset($word['Furigana']) ? $word['Furigana'] : $word['Surface'];
    }
    echo $str . PHP_EOL;
} catch (Services_Yahoo_Exception $e) {
    die($e->getMessage());
}

その他

  • Services_Yahoo_JPに取り込まれたい

インストール

pear install openpear/Services_Yahoo_JP_Furigana

依存

pear.php.net
Services_Yahoo

メンテナー

SHIMOOKA Hideyuki (as lead)

リリース

0.1.0 (alpha)

この辺のAPIを叩くパッケージを作ってみようかと。

リリース0.0.1

インストール

pear install openpear/Services_Yahoo_JP_Text

依存

pear.php.net
Services_Yahoo

メンテナー

SHIMOOKA Hideyuki (as lead)

リリース

0.0.1 (alpha)

YourFileHostの動画情報を取得するパッケージです。

夜のお供に役立てて下さい。

<?php
require_once 'Services/YourFileHost.php';
$y = new Services_YourFileHost('http://www.yourfilehost.com/media.php?cat=video&file=pig_implodes_in_pressure_suit.flv');
var_dump($y->video_id); // flvのURL
var_dump($y->photo);    // サムネイルのURL

インストール

pear install openpear/Services_YourFileHost

メンテナー

localdisk (as lead)

リリース

0.1.0 (beta)

This is unofficial mirror of spyc.

This allows you to install Spyc via pear command.

インストール

pear install openpear/Spyc

メンテナー

MugeSo (as lead)

リリース

0.4.5 (stable)

Stream_Filter_Mbstringは、PHPストリームに対するカスタムフィルタです。あらゆるストリームに対し、文字エンコーディングの変換および英数字/記号/カタカナの正規化を提供します。

メリット

  • 巨大なファイルに対しても、メモリを無駄に消費せず文字エンコーディングを変換できます
  • 標準入力や標準出力に対しても適用可能です
  • 利用が容易です
  • 文字エンコーディング関連の攻撃に対する防御に利用できます
  • 不正な文字を含んでいる場合でも可能な限り情報を残します
  • 他のストリームフィルタを作成する際に、実装の参考にできます

ストリームについて

PHPのストリームはPHP5.0.0で導入された、比較的古くからある機構です。ファイルのみならず、シーケンシャルに読み書き可能なリソース(URL、標準入出力、ソケットなど)を統一的に扱うための概念です。


さらに、ストリームに関連してフィルタという概念があり、ストリーム上に流れる文字列を加工することができます。フィルタは同時に複数利用できますので、フィルタを組み合わせて複雑な加工をすることも可能です。


Stream_Filter_Mbstringが提供するストリームフィルタ

  • convert.mbstring.encode.[FROM_ENCODING]:[TO_ENCODING]
    • ストリームにmb_convert_encoding()を適用します
  • convert.mbstring.kana.[OPTION]:[ENCODING]
    • ストリームにmb_convert_kana()を適用します

インストール

pear install openpear/Stream_Filter_Mbstring

メンテナー

hnw (as lead)

リリース

0.0.7 (stable), 0.0.6 (alpha), 0.0.5 (stable), 0.0.4 (alpha), 0.0.3 (stable), 0.0.2 (stable), 0.0.1 (stable)

PHPにマクロ機能を付加します。

マクロ未使用時

include "hoge.php"

マクロ使用時

$opts = array();

$opts['debug'] = true;

Stream_Macro::registByArray('macro', $opts);

include "macro://hoge.php"

サポートする構文

インクルード

#include [ファイル名]

定義

#define 変数名 値

#define マクロ関数 式

条件

#ifdef 変数名

#if 条件式

#else

#endif

ループ

#for 式

#endfor

#foreach 式

#endforeach

#while 式

#endwhile

インストール

pear install openpear/Stream_Macro

メンテナー

坂本弘一 (as lead)

リリース

1.0.0 (stable), 0.1.0 (alpha)

比較的管理しやすい文字列のフォーマットを行います。

PDOのプリペアドステートメントに近い何か。

インストール

pear install openpear/String_Formatter

メンテナー

ShuHei Tanuma (as lead)

リリース

0.1.3 (stable), 0.1.2 (stable), 0.1.1 (alpha), 0.1.0 (stable)

http://www.deathmarch.jp/pilika/

をPHPで作ってみる

インストール

pear install openpear/Template_Pilika

メンテナー

IZUMIYA (as lead)

リリース

0.1.0 (alpha)

習作です

とりあえずASCIIをモールス信号に変換して返してみるよ

インストール

pear install openpear/Test_MorseSignalConverter

メンテナー

さわだ (as lead)

リリース

0.1.1 (stable), 0.1.0 (stable)

文字列をケータイサイト風に整形します。

インストール

pear install openpear/Text_Ketainize

メンテナー

okonomi (as lead)

リリース

0.0.1 (alpha)

Text_Ngram

文字列を N-gram 形式に分割するためのライブラリです。

N-gram オブジェクトを生成し、配列のように扱うことができます。

Requirements

PHP5 (>= PHP 5.3)

N-gram?

例えば全文検索システムを構築する場合、前処理としてインデックスの作成が必要となります。

しかし、欧米の言語と違って、日本語はスペース等の一定のデリミタで区切ることはできません。

そこで、文章的な意味に関わらず、 n 文字ごとの分割した形式を使い、これを N-gram といいます。

分かち書きの方法としては、形態素解析も挙げられますが、 N-gram では辞書のメンテナンスが不要、という利点があります。

また、 n 文字ごとに分割する、という単純なルールなため、言語にかかわらず適用することができます。

Usage

Create N-gram object
require_once '/path/to/Text/Ngram.php';
use Text\Ngram;
$ngram = new Ngram('こんにちは世界!', 2, 'UTF-8');
Convert to array
$ngramArray = $ngram->toArray();
Treat N-gram object as array
echo $ngram[0];     // => こん
echo $ngram[1];     // => んに
echo count($ngram); // => 7
Iteration
foreach ($ngram as $key => $value) {
    echo "{$key} : {$value}" . PHP_EOL;
}

Author

Yuya Takeyama <sign.of.the.wolf.pentagram at gmail.com>

See also

php5-Text_Ngram on Github

http://github.com/yuya-takeyama/php5-Text_Ngram/

インストール

pear install openpear/Text_Ngram

メンテナー

yuya_takeyama (as lead)

リリース

0.9.0 (beta)

Text_VariationProducerは、指定した全組み合わせの文字列を作り出すようなイテレータです。n重ループや分岐を書く代わりに、文字列の組み合わせパターンを簡単な文法で記述するだけで全部の組み合わせを順に得ることができます。

任意の文字列の組み合わせを比較的簡潔に記述できます。また、Text_VariationProducerはSPLのイテレータを実装しているため、foreach文で簡潔にループを記述できます。

他の特徴としては、必要になってから文字列を生成し、生成した文字列を即座に破棄する点が挙げられます。全ての組み合わせを一度に生成するよりもメモリ消費が抑えられ、組み合わせ数が多い場合(数十万から百万程度)でも現実的に動作します。

さらに、クラス定数で便利な文字列定義を提供しており、「1バイトから3バイトで表現される全てのUTF-8の1文字」などが簡単に利用できます。


用途

  • デバッグ:検査用文字列を簡単に大量に作れて便利です。
  • テスト:大量の文字列に対するテストを簡潔に記述できます。

サンプル

次のような使い方ができます。

<?php
require_once 'Text/VariationProducer.php';

$strings = new Text_VariationProducer('abc{01,23[xyz]}');
foreach ($strings as $string) {
  echo "$string\n";
}
/*
Results:
abc01
abc23x
abc23y
abc23z
*/

<?php
require_once 'Text/VariationProducer.php';

$strings = new Text_VariationProducer(Text_VariationProducer::UTF8);
$count = $false_count = 0;
foreach ($strings as $string) {
  $count++;
  if (!mb_check_encoding($string, "UTF-8")) {
    $false_count++;
  }
}
echo "not UTF-8: $false_count/$count\n";
/*
Results:
not UTF-8: 0/63488
*/

コンストラクタ引数について

コンストラクタ引数で、どのような文字列を作るか指定できます。


'通常の文字列'
そのまま記述します。例:'abc'→文字列"abc"1種類
'\123'
バックスラッシュ+数字1〜3桁で、8進表記により1バイトを表現できます。例:'\0'→ヌル文字
'\x20'
バックスラッシュ+x+数字1〜2桁で、16進表記により1バイトを表現できます。
'\n'
バックスラッシュ+英字1文字で、PHPのダブルクォート内と同様のエスケープ文字が記述できます。
'…\{…'
Perlの文字列風に、バックスラッシュにより任意の1文字を表現できます。その文字が特殊文字として解釈されるのを防ぐことができます。これは以下の構文内でも同様です。
'{…}'
シェル風のブレース展開が記述できます。例:'{01,23,45}'→"01" "23" "45"の3種類
'[…]'
正規表現風に1バイトを記述できます。例:'[135]'→"1" "3" "5"の3種類/'[a-z]'→"a" "b" … "z"の26種類
'[^…]'
正規表現風な否定形式で1バイトを記述できます。例:'[^\x01-\xfe]'→"\0" "\xff"の2種類
組み合わせ
上記の記法を自由に組み合わせることができます。例:'{ab,cd[3-4]}[PQ].dat'→"abP.dat" "abQ.dat" "cd3P.dat" "cd3Q.dat" "cd4P.dat" "cd4Q.dat"の6種類

制限・注意点

現時点では{…}のネストはできません。{…}の内側に[…]を書くことは可能です。

Text_VariationProducerでバックスラッシュを含む文字列を作るには「\\」という文字列をコンストラクタに渡す必要があるため、PHPの表現としては'\\\\'と書く必要があります。これは非常に読みにくいので、代わりに'\x5c'と記述することもできます。どちらがマシかは微妙だと思いますけど。


クラス定数

コンストラクタ引数に渡す用途として、Text_VariationProducer::UTF8のようなクラス定数を利用できます。例えば下記のようなクラス定数が定義されています。

UTF8 (1〜3バイトのUTF-8の1文字、サロゲート領域のU+D800〜U+DFFFを除くU+FFFFまで、63488種)
'{[\x00-\x7f],[\xc2-\xdf][\x80-\xbf],[\xe0][\xa0-\xbf][\x80-\xbf],[\xe1-\xec\xee\xef][\x80-\xbf][\x80-\xbf],\xed[\x80-\x9f][\x80-\xbf]}'
SJIS_WIN (ASCII+1区〜120区のSJIS漢字+半角カナ、117+11280+63=11460種)
'{[\x00-\x7e],[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc],[\xa1-\xdf]}'

履歴

  • 0.1.2 (2009/05/02) クラス定数の定義を修正/別名を追加
  • 0.1.1 (2009/04/30) UTF8などのクラス定数を追加
  • 0.1.0 (2009/04/29) ベータリリース

インストール

pear install openpear/Text_VariationProducer

メンテナー

hnw (as lead)

リリース

0.1.3 (beta), 0.1.2 (beta), 0.1.1 (beta), 0.1.0 (beta), 0.0.3 (alpha), 0.0.2 (alpha), 0.0.1 (alpha)

Smartyライクの軽量なテンプレートエンジンを作ってみます

Smartyとの違いは、テンプレート側もphpファイルになっている点。

実装とデザインを分離しつつ、軽量/高速で動かしてみたかった。

インストール

pear install openpear/Twins

メンテナー

Kenjiro (as lead)

リリース

0.0.1 (alpha)

SessionAdoptionやSessionハイジャックをブロックする為のライブラリです。

これは、SessionAdoptionをブロックする為、一度、セッションの値を初期化します。

Sessionハイジャックを検知したい場合は、

Web_SessionSecurity::getAlert()で知ることができます。

知った後の処理は、Webアプリへ委譲します。

また、アラートを取り消したい場合は、Web_SessionSecurity::clearAlert()を呼び出してください。

インストール

pear install openpear/Web_SessionSecurity

メンテナー

坂本弘一 (as lead)

リリース

0.5.0 (beta)

WikiHub preview command.

インストール

pear install openpear/WikiHub

依存

openpear.org
HatenaSyntax

メンテナー

Sotaro KARASAWA (as lead)

リリース

1.0.0 (stable)

シーザー暗号をつくったり、はずしたりするライブラリ。

インストール

pear install openpear/Wozozo_CaesarCrypt

メンテナー

halt (as lead)

リリース

1.0.0 (stable)

id:wozozoに合った求人情報を提供する。

インストール

pear install openpear/Wozozo_FindJob

メンテナー

halt (as lead)

リリース

1.0.0 (stable)

あなたのZend FrameworkによるRADを猛烈に後退させる

zfコマンドようプロパイダーです。

つかいかた

 $ zf download yourfilehost "http://www.yourfilehost.com/media.php?cat=video&file=hogehoge.wmv"

インストール

pear install openpear/Wozozo_Libido_Tool_Provider_YourfilehostProvider

依存

openpear.org
Diggin

メンテナー

させざき (as lead)

リリース

0.1.0 (stable)

実行すると、メモリ使用量を減らす事ができる画期的なパッケージ。

require_once 'Wozozo/MemoryClean.php';

// example

$data = array();

foreach (range(0, strlen(__FILE__)) as $no_use) {

$data[] = file_get_contents(__FILE__);

}

echo 'before memory usage:' . memory_get_usage() . 'byte' . PHP_EOL;

$wozozo = new Wozozo_MemoryCleaner();

echo 'after memory usage:' . memory_get_usage() . 'byte' . PHP_EOL;

インストール

pear install openpear/Wozozo_MemoryCleaner

メンテナー

halt (as lead)

リリース

1.0.0 (stable)

wozozoさんのためのライブラリ

インストール

pear install openpear/Wozozo_OneClickFraud

メンテナー

halt (as lead)

リリース

1.0.0 (stable)

PHPのロゴとかイースターエッグのロゴを出すライブラリ。

インストール

pear install openpear/Wozozo_PHPLogo

メンテナー

halt (as lead)

リリース

1.0.0 (stable)

指定した時刻がどのくらい過去かを分かり易く返します。

インストール

pear install openpear/Wozozo_PastTime

メンテナー

KOYAMA Tetsuji (as lead)

リリース

1.0.0 (stable)

PATH_INFOを配列にへんかーん

インストール

pear install openpear/Wozozo_Pathinfo

依存

openpear
Openpear_Util

メンテナー

KOYAMA Tetsuji (as lead)

リリース

1.0.0 (stable)

wozozoがんばってね

インストール

pear install openpear/Wozozo_PropelUtil

メンテナー

fivestar (as lead)

リリース

1.0.1 (stable), 1.0.0 (stable)

最後っ屁をかまします。

Usage:

new Wozozo_Saigoppe(); //デフォルトの最後っ屁を登録

new Wozozo_Saigoppe('ブリブリ'); // 擬音を指定して登録

new Wozozo_Saigoppe('poot!', false); // 顔文字を無効に

インストール

pear install openpear/Wozozo_Saigoppe

メンテナー

MugeSo (as lead)

リリース

1.1.0 (stable), 1.0.0 (stable)

なんかわからん文字列に変換。逆変換もできるよ。

インストール

pear install openpear/Wozozo_TinyCrypt

メンテナー

KOYAMA Tetsuji (as lead)

リリース

1.0.0 (stable)

hogera hogefuga hoge fuga gufuuff hogge

インストール

pear install openpear/Wozozo_Unko

メンテナー

Keisuke SATO (as lead), Sotaro KARASAWA (as lead)

リリース

2.0.0 (stable), 0.1.1 (alpha), 0.1.0 (stable), 0.0.1 (alpha)

ちょーしんぷるなテンプレート。

インストール

pear install openpear/Wozozo_View

依存

openpear
Openpear_Util

メンテナー

KOYAMA Tetsuji (as lead)

リリース

0.1.1 (stable), 0.1.0 (stable)

id:wozozoの脳内彼女の画像を出力する。

インストール

pear install openpear/Wozozo_VirtualGirlFriend

メンテナー

halt (as lead)

リリース

1.0.0 (stable)

Download YouTube's video


install:

pear channel-discover openpear.org
sudo pear install openpear/Wozozo_WWW_YouTube

usage:

<?php
require_once 'Wozozo/WWW/YouTube.php';
Wozozo_WWW_YouTube::download('gQf_QTsvXCU'); //YouTube's videoID
Wozozo_WWW_YouTube::download('http://www.youtube.com/watch?v=gQf_QTsvXCU'); //

zf tool's provider

zf enable config.provider Wozozo_WWW_YouTube_Tool_YoutubeProvider

インストール

pear install openpear/Wozozo_WWW_YouTube

メンテナー

させざき (as lead)

リリース

0.0.5 (stable), 0.0.4 (beta), 0.0.3 (stable), 0.0.2 (stable), 0.0.1 (stable)

Zenrize in PHP

<?php
require_once 'Wozozo/Zenra.php';
$appid  = getenv('YAHOO_APPID');
$params = array('appid' => $appid);
$zenra  = new \Wozozo\Zenra($params);
echo $zenra->zenrize('お腹が空きました'); // お腹が全裸で空きました

Nightize

<?php
require_once 'Wozozo/Zenra.php';
$appid  = getenv('YAHOO_APPID');
$params = array(
    'appid'    => $appid,
    'position' => '名詞',
    'text'     => '夜の'
);
$zenra = new \Wozozo\Zenra($params);
echo $zenra->zenrize('お腹が空いたのでスパゲッティが食べたい');
// 夜のお腹が空いたので夜のスパゲッティが食べたい

Requirement

PHP5.3

HTTP_Request2

PHPUnit

Yahoo! Japan Developer's application id

Yahoo!デベロッパーネットワーク - テキスト解析 - 日本語形態素解析

インストール

pear install openpear/Wozozo_Zenra

メンテナー

heavenshell (as lead)

リリース

0.0.1 (beta)

The following copyrights are applicable to portions of Zend Framework.

Copyright © 2005-2009 Zend Technologies Inc. (http://www.zend.com)

インストール

pear install openpear/ZendFramework

メンテナー

Keisuke SATO (as lead), wozozo (as lead)

リリース

1.9.0 (stable)

簡単に日本語(iso-2022-jp)メールを送信するためのsymfony1.4プラグイン

インストール

pear install openpear/jpSimpleMailPlugin

メンテナー

brtRiver (as lead), ganchiku (as lead)

リリース

1.0.0 (stable), 0.4.1 (beta), 0.4.0 (beta), 0.3.1 (stable), 0.3.0 (beta), 0.2.1 (stable), 0.2.0 (stable), 0.1.1 (beta), 0.1.0 (beta)

log4phpのtwitterにポストするAppender。

log4phpとZend_Service_Twitterに依存してます。

インストール

pear install openpear/log4php_appenders_LoggerAppenderTweet

メンテナー

里 洋平 (as lead)

リリース

1.0.2 (beta), 1.0.1 (beta), 1.0.0 (beta)

OpenPNE3用のフリーページ プラグインです。

  • OpenPNE2系の互換を意識
    • PC・mobile 両対応
    • 認証あり・なし 両対応
  • ルーティング拡張済み(/freepage/idでアクセス可能)

試験的にopenpearに置いてみます。

インストール

pear install openpear/opFreepagePlugin

依存

pear.symfony-project.com
symfony

メンテナー

うえちょこ (as lead)

リリース

0.9.0 (beta)

Command line interface to look up the PHP manual.

インストール

pear install openpear/phpman

依存

pear.php.net
Archive_Tar

メンテナー

Sotaro KARASAWA (as lead)

リリース

0.1.5 (stable), 0.1.4 (beta), 0.1.3 (beta), 0.1.0 (beta)

symfonyでの携帯サイト制作を支援するプラグイン

symfonyはPEARチャンネルを用いてプラグインをインストールできるので、openpearは配布用です。

開発は http://github.com/vectorxenon/sfJpMobilePlugin/tree/master です。

気に入らなかったら、ドンドンforkしてください。

インストール

pear install openpear/sfJpMobilePlugin

メンテナー

vector (as lead)

リリース

0.0.6 (beta), 0.0.5 (beta), 0.0.4 (beta), 0.0.3 (beta), 0.0.2 (beta), 0.0.1.1 (alpha), 0.0.1 (beta)

IPアドレスから高速に携帯キャリアを判別するsymfonyプラグイン

インストール

pear install openpear/sfMobileIPPlugin

メンテナー

bto (as lead)

リリース

0.0.15 (beta), 0.0.14 (beta), 0.0.13 (beta), 0.0.12 (beta), 0.0.11 (beta), 0.0.10 (beta), 0.0.9 (beta), 0.0.8 (beta), 0.0.7 (beta), 0.0.6 (beta), 0.0.5 (beta), 0.0.4 (beta), 0.0.3 (beta), 0.0.2 (beta), 0.0.1 (beta)