トップページ⇒php
981コメント318KB

【PHP】PEAR Part2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/08/01(月) 21:27:12ID:pG+mahP3
落ちてたんで立てとく

■PEAR
http://pear.php.net/

■前スレ
Pear
http://pc8.2ch.net/test/read.cgi/php/985665522/
0236nobodyさん2005/12/27(火) 22:09:08ID:???
>>235
確かに、とはいえcryptType自体ドキュメントに載ってないみたいだし、
その機能に気づく奴はそもそもソース読んだ奴だけでしょ。
いまはuserAdd()自体の説明も削除されてるけど、昔はあったような気がするから
たんに後方互換のためだけに存在してるのかも。

PEAR::Auth つかってるけどいままで特に問題は経験してないよ。
でも気になるなら書き直したっていいんじゃない?
0237nobodyさん2005/12/27(火) 22:31:05ID:6hbW+Cc+
>>236
どうも。複雑な認証を行う場合は、大抵それ用にコード書くので、
ライトな使い方で、基本動作に問題ないようなら、とりあえずOKっす。
0238nobodyさん2006/01/03(火) 11:02:07ID:bVutY5ZN
DB.phpを使って、URL(http://www.google.co.jpとか)をDBに書き込もうとすると
エラーが出るのですが、これを回避する方法はないのでしょうか?
0239nobodyさん2006/01/03(火) 11:12:25ID:???
それなんてエ(ry
0240nobodyさん2006/01/03(火) 11:24:23ID:???
>>238
カラムの型とかエラーメッセージを示さないでどうやって答えろと?
0241nobodyさん2006/01/04(水) 03:11:04ID:LqFUITlR
Pagerで
1 2 3 4
ではなく
1-100 101-200 201-300 301-400
のような表示はできますか?

あと、Factory()のオプションの、
expanded [boolean]. もし TRUE なら、ウィンドウサイズは常に 2*delta+1 となります。
とはどういう意味でしょうか?
0242nobodyさん2006/01/06(金) 17:18:35ID:vfftbldx
インストールについての質問です。

このサイトでWin版マルチバイト対応PHP5.04をダウンロードしました。
http://www.geocities.jp/rui_hirokawa/php/win/

このPHPに入っているgo-pear.batがなにかおかしくて
(実行すると[Could not open input file: PEAR\go-pear.php.]と出てしまう)
PEARがインストールできません。

そこで以前使っていたPHP4に入っていたgo-pear.batをこのPHP5にコピー
してPEARをインストールしようと思うんだけど、この方法で問題なくインストール
できるでしょうか。
0243nobodyさん2006/01/06(金) 17:22:30ID:???
>>242
ちゃんとPHPが入っているフォルダに移動(cd)してから実行した?
02442422006/01/06(金) 17:36:19ID:???
>243
はい。(cd)でもやりましたし、「ファイル名を指定し実行」もやりましたし、
ダブルクリックでもやりましたが
「Could not open input file: PEAR\go-pear.php.]と出るだけでした。

PHP4のgo-pear.batはダブルクリックするだけで実行されます。
0245nobodyさん2006/01/06(金) 17:40:11ID:???
>>244
>>242のリンク先に

現状での問題点(2005/5/31)

* go-pear.bat実行時にpear.batが作成されない(pear_bat.oldをリネーム)

って書いてあるやん・・・。
02462422006/01/06(金) 17:48:01ID:???
>>245
それは実行するとpear.batが作成されるんですよね?
実行ができないのでなんにも作成されてないんです。

それとPEARフォルダはPHPをインストールしたときにもうできているんでしょうか。
このPHP5にはPEARフォルダが無いんですけど。
0247nobodyさん2006/01/06(金) 18:03:52ID:???
>>246
たとえばphp-5.1.1-Win32.zipを落としてきて解凍するとPEARフォルダはある。
go-pear.batの中身を見ればわかるけど、PEARフォルダ内のgo-pear.pharを
実行してPEARのインストールをするみたいね。

その国際版になんでgo-pear.pharが無いかは知らないけど、どうせ流用するなら
PHP 5.0.4のソースを落として使ったほうがいいんじゃない?
0248nobodyさん2006/01/06(金) 18:59:36ID:???
>>247
なるほど。PHP5をダウンロードして流用しみます。
>>243,245,247助かりました。ありがとう。
02492472006/01/06(金) 19:11:48ID:???
>>248
蛇足というかおせっかいだけど、マルチバイト版を使いたいのは
内部コードをSJISにしたいからだよね?

でも、5.0.4には大きなセキュリティホールがあるから、PHP 5.1.1にして
内部コードをUTF-8化することをお奨めしとく。
mb_stringを有効にしてphp.iniを適切に設定すれば、出力文字コードを
好きなエンコードに自動変換してくれるから。
0250nobodyさん2006/01/13(金) 14:16:52ID:U09ztjR4
メモリのカスタマイズで1X1GBと2X512と同じ値段だけど、どっちがいいの?
1X1GBの方ですよね
0251nobodyさん2006/01/13(金) 16:04:34ID:???
>>250
PEARとどういう関係が?
ちなみにDual CHANNELなら2枚の方が早いんじゃないの
0252nobodyさん2006/01/15(日) 00:22:45ID:???
これって何て発音するの?
0253nobodyさん2006/01/15(日) 09:39:06ID:???
ペァーーーーー
0254nobodyさん2006/01/15(日) 15:07:33ID:???
ぴあで言い慣れてしまっている。
0255nobodyさん2006/01/15(日) 15:11:17ID:???
DB と MDB と MDB2 の違いっておおざっぱに言って何?
0256nobodyさん2006/01/15(日) 15:30:30ID:???
実績ならDB、熱いのはMDB2、MDBは放置プレイ。
MDB2 FAQ: http://oss.backendmedia.com/MDB2/FaQ

このところMDB2が怒濤の勢いでFixされてて、いよいよstableリリースが近づいてきた感じ。
今後はPDOのラッパにもなりそう。あと、http://pooteeweet.org/blog/297
によるとDBを使ってるPEARパッケージでもMDB2がサポートされていくみたい。
0257nobodyさん2006/01/15(日) 16:05:17ID:???
心の中ではペアと読んでる
0258nobodyさん2006/01/15(日) 16:23:57ID:???
>>256
thx

ついでに、こいつらで PHP 4 で SQLite が安心して使えるようになる
可能性って低いかねぇ? PHP 5 でバッチリサポートされちゃったし、
オレならモチベーション上がらないだろうなーと思うんだけど。
0259nobodyさん2006/01/15(日) 19:35:41ID:???
pearはペア派です。
nethackのitemでおぼえますた。
DBはぽすぐれおんりーになってきた最近です。
0260nobodyさん2006/01/15(日) 21:04:18ID:???
人には「ペアって読むんですよ」と教えつつも
心の中ではピアって読んでるワタクシ

※「ペア」が正解だと公式サイトに書いてあります
ttp://pear.php.net/manual/en/introduction.php
> is pronounced just like the fruit

like the fruit > ttp://dictionary.goo.ne.jp/search.php?MT=pear&kind=ej&mode=0
0261nobodyさん2006/01/16(月) 01:20:18ID:???
クライアントの前ではピアと読んでいる、(クライアントがそう読んでいる)
が、心の中ではずっとペアと読んでいる。
0262nobodyさん2006/01/16(月) 03:01:05ID:???
>>258
低そうですねー。
PHP5でしか使えないOOスタイル(SQLiteDatbaseクラス)が
PHP4でも使えるようになると嬉しいんだけど...
0263nobodyさん2006/01/16(月) 03:26:32ID:???
ペアって読んでる。
関係ないけどCPANは読み方分からなくてシーパンで癖ついちゃったけどクパンって読むらしいね…。
0264nobodyさん2006/01/16(月) 08:22:07ID:???
>>263
ちょwww工作員wwwwww
0265nobodyさん2006/01/16(月) 12:48:16ID:???
http://dictionary.goo.ne.jp/voice/p/00060483.wav
0266nobodyさん2006/01/16(月) 12:49:50ID:G/ZbNFBV
梨でしょ
0267nobodyさん2006/01/16(月) 20:21:44ID:???
梨だよな。明らかに
0268nobodyさん2006/01/16(月) 21:43:18ID:???
梨に間違いナシ
0269nobodyさん2006/01/16(月) 22:13:54ID:???
>>268
0270梨元2006/01/17(火) 08:37:22ID:???
恐縮です
0271nobodyさん2006/01/17(火) 12:36:46ID:???
梨の絵かいてあんだろ
0272nobodyさん2006/01/24(火) 23:42:32ID:6JXx7sTK
php5.1.2インストール済みのWin2000 ServerにPEARをインストールしようとして、
リモートデスクトップで接続し、DOS窓からphpのインストフォルダに移動して、
>go-pear.bat
と入力しても何も応答がありません。

ちなみにWinXPのパソコンでは、Welcomeが出てきます。

なぜでしょうか?
0273nobodyさん2006/01/25(水) 00:43:07ID:???
Spreadsheet_Excel_Writerって文字化けするよね。
0274nobodyさん2006/01/25(水) 00:50:13ID:???
キャッシュはメンテナいないCacheよりCache_Lite?
0275nobodyさん2006/01/25(水) 20:15:19ID:???
>>273
PHPのやつは古いんで、かと言って最新のPerlのやつを移植するスキルもないので、
ブリッジ作ってPerlのやつ使ってます
0276nobodyさん2006/01/26(木) 00:00:05ID:???
Pager で、リンクに hoge.php?pageID=1#top
みたいにページ内リンクをつけるのって出来ますか?
0277nobodyさん2006/01/26(木) 09:51:22ID:???
HTML_QuickForm_Controller+smarty使って
携帯用のフォーム作りたいんだけど
ttp://wiki.poyo.jp/read/Writing/marugoto_php/HTML_QuickForm_Controller#content_1_5
に「HTML_QuickForm_ControllerはHTTPヘッダのLocationを使用します。
ですので携帯電話用のフォーム処理には向きません」との記述。

実際作ってみたんですがやっぱり動かない。
どこの処理でLocation使ってるんですか?

出来上がったソースみても書いてないし。
↓参考にしたソース
ttp://blog.snoritake.com/2005/12/html_quickform_controllersmart_1.html
0278nobodyさん2006/01/27(金) 09:19:29ID:???
普通に考えたらライブラリの中で使ってるってことだと思うんだけども
0279nobodyさん2006/01/27(金) 17:30:12ID:zienXgmO
やっぱりAuthクラスっていけてないですね。

PHP5でエラーが出たので、ちょっと見たのですが、
コンストラクタの$options引数が、コンテナによって、
配列だったり、文字列だったりするのだけど、
どちらの場合も、ごちゃまぜに処理してしまっていて、
これがエラーの原因になっています。

よく使いそうな役割のクラスだけに、
もうちょっとしっかりしたコードにしてほしいもんだ。
0280nobodyさん2006/01/28(土) 13:54:13ID:???
>>279
そこでおまえがコミットですよ
0281nobodyさん2006/02/01(水) 12:15:51ID:FRDzC7Md
AuthクラスのgetAuthとaddUserについて質問です。

次レスのようなシンプルなソースを作りましたが、
addUserでは必ずTrueが、getAuthでは必ずFalseが返ってきてしまいます。

addUserはTrueでも実際には動作してないです。エラーも出ません。
getAuthはgetStatusに変えたら正しく動作しました。
同様な現象になったことがある方いませんか?

このままですと、getAuthやaddUserだけでなく他にも挙動がおかしいもの
がでてきそうな気がします。正しく動作させる方法を教えてください。

環境:
PHPは4.3.10ですが、デフォルトで入っているPEARの挙動が
おかしかったので http://pear.php.net/packages.php ここから
AuthとDB関連のクラスは入れなおしてます。
register_globals は Off です。
0282nobodyさん2006/02/01(水) 12:16:27ID:FRDzC7Md
>>281 のソース

<?php
require_once "Auth/Auth.php";

$dsn = "mysql://user:password@localhost/database";

$authset = array(
"dsn" => $dsn,
"table" => "auth",
"usernamecol" => "username",
"passwordcol" => "password",
"cryptType" => "none"
);
$a = new Auth("DB", $authset);

// ユーザーの追加---必ずTrueが返ってくるが登録されてない。
if($a->addUser('user','pass')) {
echo "ユーザーを追加しました。";
}
$a->start();

// 認証チェック---必ずFalseが返ってくる。
if ($a->getAuth()) {
echo "ようこそ!" . $a->username . "さん<br>";
}
?>
0283nobodyさん2006/02/01(水) 18:05:00ID:???
PEARでXMLを扱う場合におすすめなのは、何ですか?
0284281-2822006/02/01(水) 20:51:33ID:???
>>281-282
気のせいでした。。。_| ̄|○ il||li
接続設定が違っていた模様・・・

スレ汚しスマソ(´・ω・`)ショボーン
0285192.168.0.774 2006/02/02(木) 10:25:44ID:rSyssRqD
>>283
PEARじゃなくともSimpleXML使えばお腹いっぱい
0286nobodyさん2006/02/02(木) 11:09:31ID:???
>>285
PHP4なのでお腹いっぱいになりません…
0287nobodyさん2006/02/02(木) 13:28:02ID:???
>>285
しらなかった・・・
PHP5なのにxml_parse()使ってたorzorzorz
0288nobodyさん2006/02/02(木) 14:23:19ID:???
>>286
ttp://www.ister.org/code/simplexml44/index.xhtml
にPHP4用のSimpleXMLらしきものがあるので、試してみては?
0289nobodyさん2006/02/02(木) 14:36:37ID:???
>>288
へー。初めて知りました。
PEARのXMLを扱うやつと比較しながら
ちょっと試してみます。ありがとやん。
0290nobodyさん2006/02/09(木) 12:10:45ID:???
HTML_QuickFormのaddRuleでhiddenの値(one-time token)をvalidateしようとしています。

なぜか全く反応しません。
requiredにも無反応。raiseErrorにもひっかからない。

hiddenの値をvalidateするにはどうすればいいですか?
0291nobodyさん2006/02/09(木) 13:01:42ID:???
>>290
マルチ
0292nobodyさん2006/02/10(金) 05:41:05ID:???
>>290
呪文を唱える(マジ)
0293nobodyさん2006/02/10(金) 14:03:44ID:???
>>292
マジで呪文を唱えてみました

効果がありませんでした。
とりあえずソースにデバッグコードを埋め込んだりして、動きを追っています。
mojavi + HTML_QuickForm + smarty という構成なのでそのどこかにバグがあるのでは
と思っています。

今このあたりを調べ中…(3日もコーディングが進まない…)
$form->accept($QFrenderer);
0294nobodyさん2006/02/10(金) 19:31:43ID:???
>>293
>mojavi
だったら、根本的な解決にならんけど、

Acrionのinitialize()あたりでチェックする。
0295nobodyさん2006/02/11(土) 06:24:10ID:???
>>290
ソース出してみ
0296nobodyさん2006/02/11(土) 15:27:57ID:???
こんなのでも動かないよ
仕様じゃないかと思われるから要望だそうかと思うけど

$form->addElement('hidden', 'test', '');
$form->addRule('test', 'test is required', 'required', '');
0297nobodyさん2006/02/13(月) 22:58:45ID:pnT1I5vq
MDB2 SQLite リリースあげ
http://pear.php.net/package/MDB2_Driver_sqlite/
0298nobodyさん2006/02/14(火) 16:45:17ID:???
なんでPERLと似てんの?意識してんの?
0299nobodyさん2006/02/14(火) 20:28:20ID:???
SQLiteってそんな使ってる人多いの?
0300nobodyさん2006/02/14(火) 22:59:00ID:nEcRuD6a
SQLite ならデーモンの管理や権限の管理が要らないから
DB の使えるホスティングが増えるんじゃないかなーと
期待してる
0301nobodyさん2006/02/15(水) 07:32:02ID:???
PHP ではあんまり流行らないかもねぇ
まだ日本語ドキュメントがあんまりないし
0302nobodyさん2006/02/15(水) 08:08:14ID:???
仕事では使った事ないけど、遊びで使う時には便利だったな。@windows
DB周りの設定のようなロジックに関係無い部分に気を使う必要がないから、すぐに作り始められる。

3への移行時期あたりに本家のドキュメントを手当たり次第に訳してどっかにうpした記憶があるんだが、URLわかんね。
地道に検索すりゃ見つかるんじゃないかな。
つか、他のDBと比べた時に多少制限があるくらいで、そこさえ押さえておけばあんまり意識する必要がなかったような。
0303nobodyさん2006/02/15(水) 09:19:32ID:???
管理用のツールはこの辺
http://www.debianhelp.co.uk/sqliteweb.htm
0304nobodyさん2006/02/16(木) 08:01:48ID:???
http://rakuto.net
0305nobodyさん2006/02/18(土) 02:28:12ID:Fc1AYhHK
AuthをmacのMAMPで使ってみた。
http://pear.php.net/manual/ja/package.authentication.auth.intro.php
の一番上にある最もシンプルなスクリプト実行してみたが、認証できず5時間くらい格闘中。
MAMPではmysqlのポートが8889になってしまうので、$dsn = "mysql://ネーム:パスワード@tcp(localhost:8889)/データベース名"
としてみたが、いっこうに動かず。Authのバグかなこれ??

しかもphp5だとこのスクリプトは動かず、外人どももご立腹な様子。
http://pear.php.net/bugs/bug.php?id=4371
0306nobodyさん2006/02/20(月) 17:00:30ID:???
HTTP_Clientでproxy使いたいんですが、どうやればいいんでしょうか
0307nobodyさん2006/02/20(月) 17:31:46ID:vRXDRBjP
>>306
気のせいだよ
0308nobodyさん2006/02/20(月) 22:23:00ID:???
誤爆?
03093062006/02/24(金) 11:11:37ID:???
extendsしたクラスを作って、直接メンバのHTTP_RequestのsetProxyをするクラスを自作しました…
意外と簡単だった
0310nobodyさん2006/02/24(金) 17:52:14ID:???
HTTP_Client で new HTTP_Request してる所と HTTP_Request のコンストラクタをちゃんと読んでれば
継承したクラスを作らなくても済んだのに。
03113062006/02/27(月) 16:21:13ID:???
読みました。
出来ました。
ありがとうございました。
0312nobodyさん2006/03/06(月) 13:38:45ID:???
QuickFormのdateで月日の範囲指定をしたいのですが、
minYearみたいなオプションはないのでしょうか?
もしくは、それに変わるものみたいな・
0313nobodyさん2006/03/08(水) 17:54:45ID:???
HTML_QuickFormのfileってfreezeすると使えないんですか?
0314nobodyさん2006/03/08(水) 17:55:18ID:???
ageる
0315nobodyさん2006/03/08(水) 22:51:49ID:???
>313
デフォでは何も出ない。
自分で拡張するべし。
0316nobodyさん2006/03/08(水) 23:00:23ID:???
>>315
さんくす
考えてみます
0317nobodyさん2006/03/08(水) 23:06:37ID:???
PEARにHTMLパーサってありますか?
0318nobodyさん2006/03/09(木) 03:59:13ID:???
HTMLを読み込んでDOMを作るようなやつを望んでる?

PEARにはないけど、PECLにひとつあるみたいね。
html_parse
http://pecl.php.net/package/html_parse

特定のタグをの使用を制限したいとかの理由なら

tidy
http://pecl.php.net/package/tidy

SafeHTML
http://pixel-apes.com/safehtml/

なんてのがある。(どっちもPEARじゃないね)
0319nobodyさん2006/03/09(木) 15:06:39ID:???
PEAR::XML_HTMLSax
0320nobodyさん2006/03/12(日) 16:46:29ID:UjH0HOBY
こんな日本専用パッケージ通るのか?
http://pear.php.net/pepr/pepr-proposal-show.php?id=362
中身はたいしたことないけど、期待age
0321nobodyさん2006/03/12(日) 16:52:02ID:???
コメントで色々言われているけど、
そのコメント自体が結構参考になる。
0322nobodyさん2006/03/12(日) 20:13:55ID:???
>>320
imodeはギリギリOKだと思ったが、hatenaは日本のリポジトリに突っ込むべきかと。
(まあAmazonだって全世界サービスとは言えないか)

http://ns1.php.gr.jp/pipermail/phpug-admin/2005-December/001057.html
これまだなんかね。
0323nobodyさん2006/03/17(金) 00:04:48ID:???
livedoorはOKだからはてなもOKじゃないの?
0324nobodyさん2006/03/17(金) 01:36:33ID:???
つーか、承認されてるし。達成したという事実はすげーかと。
0325nobodyさん2006/03/28(火) 04:03:40ID:y/Gmg3I1
DB_DataObjectのjoinAdd()で、

LEFT JOIN hoge_table ON id = hoge_id AND code = hoge_code

のように、2つの要素をANDで指定できますか?
0326nobodyさん2006/03/28(火) 04:34:16ID:???
>>325
できない.

プライマリキーがひとつしかないテーブルにしか対応しないと思った方がいいと思う.
(これは joinAdd() に限らず DB_DataObject 全体にそんな傾向がある気がする)

普通の INNER JOIN なら whereAdd() を併用すると何とかなったりするんだけど,
LEFT JOIN は自分も前に頑張ったけどダメだった.
そして言い訳のようにマニュアルには「joinAdd() がややこしくなってきたら
生 SQL 食わせちゃった方がいいっすよ」とか書いてあるw
0327nobodyさん2006/03/28(火) 04:45:36ID:???
>>326
散々格闘した挙句、同じく生SQLで解決しちゃいました。
できそうでできないってのが曲者ですな。。
0328nobodyさん2006/03/28(火) 05:35:19ID:???
う。生SQLで解決と思ったのですが、別ライブラリとの連携の関係で、
これは解決策にはなりませんでした・・・。うーん。
0329nobodyさん2006/03/28(火) 06:35:46ID:???
生 SQL って DB_DataObject::query() 使ってる?
別ライブラリってのがどういうものかわからないけど,

> $t1 = DB_DataObject::factory('hoge');
> $t2 = DB_DataObject::factory('fuga');
> $t1->joinAdd($t2);
> $t1->find();
と
> $t1->query( "SELECT * FROM hoge INNER JOIN fuga ON ( hoge.id = fuga.id )" )
は同値.

前者が複数キーテーブルのせいで実行できなかったとして,
それを後者に置き換えてもそのライブラリの問題ってのが発生するなら,
そもそもその案件に DB_DataObject が使えないってことじゃないかって気がする.
0330nobodyさん2006/03/28(火) 12:02:04ID:???
>>329
query() 使ってます。
別ライブラリというのは PEAR Structures_DataGrid です。
これは、こちらが渡した DB_DataObject のオブジェクトを、
追加操作してFetchするため、こちらで生SQLを発行しちゃうと
残念ながら効果がなくなるようなんです。
0331nobodyさん2006/03/28(火) 13:22:07ID:???
あちゃあ.なるほど Structures_DataGrid か……

DataObject を継承したクラスを作って,
find() の時にオリジナルクエリを決め打ちで流すようにして,
Structures_DataGrid にはそいつを渡すってのはどうかな?

その場合は,Structures_DataGrid の _detectSourceType() を
get_parent_class() でなく is_a() を使うように変更したらさらに楽にいけるかも.
0332nobodyさん2006/03/28(火) 16:02:45ID:???
いやぁ、Structures_DataGrid に DB_DataObject を渡すのは、
Structures_DataGrid に適切なLimitをセットしてもらって、
データ取得件数を最適化してもらいたいからなんです。
だからオリジナルクエリを決め打ちで流すのは効果なさそうだと。
0333nobodyさん2006/03/28(火) 17:47:00ID:???
困難やねw

LEFT JOIN とかを適切に行なうビューを create view して
そのビュー用の DB_DataObject を作るってのはどないだ
0334nobodyさん2006/03/28(火) 19:15:53ID:???
>>333
なるほど〜 それならできそうな気がします。
0335nobodyさん2006/04/03(月) 15:39:54ID:mvo6jAJ1
PEAR::Pager で、

  http://sample.com?ID=1&pageID=1 → http://sample.com?ID=2&pageID=2

みたいにpageID以外の変数(ここでは ID)をページごとに変える方法ってありますか?
0336nobodyさん2006/04/03(月) 19:48:56ID:???
Pager に pageID 以外の変数を管理させたいってことだと違うかもしれないけど,
とりあえず extraVars オプションを使ってみてはいかが.
■ このスレッドは過去ログ倉庫に格納されています