トップページphp
689コメント237KB

【PHP】PEAR Part3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/09/03(月) 12:15:51ID:l6O4U4Dh
■PEAR
http://pear.php.net/
■PEAR マニュアル 邦訳
http://pear.php.net/manual/ja/
■PEAR オフィシャル blog
http://blog.pear.php.net/

■前スレ
【PHP】PEAR Part2
http://pc11.2ch.net/test/read.cgi/php/1122899232/

■過去スレ
Pear
http://pc8.2ch.net/test/read.cgi/php/985665522/
0019nobodyさん2007/10/02(火) 22:02:51ID:???
>>18
日本語でOK
0020nobodyさん2007/10/04(木) 17:31:17ID:???
Spreadsheet_Excel_Writerで、日本語データをxlsで書き出すと、セル内の改行に♪が加わってしまうことがあります。
このような場合、一度セルを編集状態にすると♪が消えるのですが、この時フォント欄が文字化けしとります。

setFontFamilyの値は英語フォント前提のようなのですが、これって指定した方がいいですか?
0021202007/10/05(金) 17:48:55ID:t2aNP1T+
         ____
      /  ─    ─\
    /    (●)  (●)\              どれ、そろそろ回答が…
    |      (__人__)    | .________
    \      `⌒´  ./ .| |          |
    ノ           \ | |          |


         ____  
      /::::::─三三─\                華麗にスルーー
    /:::::::: ( ○)三(○)\
    |::::::::::::::::::::(__人__)::::  | ________
     \:::::::::   |r┬-|  / | |          |
    ノ::::::::::::  `ー'´   \ | |          |
0022nobodyさん2007/10/05(金) 18:05:03ID:???
>>21
       ∧__∧
      ( ´・ω・)∧∧l||l
       /⌒ ,つ⌒ヽ )
       (___  (  __)  
"''"" "'゙''` '゙ ゙゚' ''' '' ''' ゚` ''"" "'
0023nobodyさん2007/10/05(金) 23:41:50ID:???
Spreadsheet_Excel_Writerって使い物になるのかな?
Readerの方は使えんね。
日本語入れてちょっと複雑にしたら
すぐに読めなくなる。

この間は途中のシートを削除したら
シート情報が正しく読み取れなくなった。
いったん、Exce95形式で保存したりして復旧させたが。

まあ使えんといいながら、開発ツールとして使ってはいるわけだが。
0024nobodyさん2007/10/06(土) 06:59:12ID:???
>>20
PHP Excel Creator Libraryがいいんじゃね?
http://pizzaseo.com/php-excel-creator-class

個人的にはExcel_Reviserがオススメだけど。

0025nobodyさん2007/10/06(土) 12:18:52ID:???
xoops界隈の開発者のソースに、何かを期待している方が間違っているってことが
まだ分からないのかw
0026nobodyさん2007/10/09(火) 09:44:45ID:???
WindowsのPHPだとネイティブにExcelを扱えなかったっけか。
0027nobodyさん2007/10/09(火) 13:51:03ID:VJHsqwfQ
/( ^o^ )\
0028nobodyさん2007/10/09(火) 14:26:03ID:???
>>26
COM使えばできる。
0029nobodyさん2007/10/15(月) 14:57:58ID:KaWp73zK
(○`O´○)カァーッ(○ ` .´○)ペッ
0030nobodyさん2007/10/17(水) 19:00:50ID:ZPSnIgH0
pearを使ってみたいのですが、どうすればインストールできるのかわかりません。
ネットにあるようにやってみましたが、自分が何か間違っている様で、動いてくれません。

MS-DOSでphp\pearと入力すると

PHP_PEAR_INSTALL_DIR is not set correctly
please fix it using your environment variable or modify the default value in pear.bat
the current value is:

となります。
注意する点としてPATHがどうのこうの書いてあったので、setで見てみると
PATH=C:WIN〜;C:\php

”PHP_PEAR_INSTAL_DIR=C:\php|pear”
"PHP_PEAR_BIN_DIR=C:\php"
"PHP_PEAR_PHP_BIN=C:\php\.\php.exe"
となっています。

何か問題があるでしょうか?また、他に確認しないといけない点はどこでしょうか?
0031nobodyさん2007/10/18(木) 09:24:50ID:???
PATHって、%PATH%とか入れといた方がいいんでないの?
ユーザ側の環境変数で追加する場合は。
0032nobodyさん2007/10/19(金) 03:01:11ID:???
msconfigでやってみようと思ったのですが、サイトに書かれていた状況と違ったので断念しました。

ただ、PATH=C:WIN〜に「;C:\php」しろって書いてあったのですが、setで見てみると既にあるっぽいので良いかと…

というか、書かれてた状況になってないのが既に問題なんですけどねw

でもどうやってもその通りにならないのです。ver.が違うからだとは思うのですが…
0033nobodyさん2007/10/19(金) 18:09:38ID:???
>>32
で、バージョンはいくつよ。

経験上、4.3以降ならgo-pear.bat実行した後、
出来たregファイルをダブルクリックして、
レジストリ登録すれば滅多なことはないはずだが。
0034nobodyさん2007/10/23(火) 22:19:40ID:???
>>33
出先から失礼します。php5 の初期ver.です。
go-pear.batに問題がある(今は新しいのになってるらしい)と書いてたサイトがあったので、
最初のパッケージに入っていたのと、新しいgo-pear.batを試しましたがダメでした。

regファイル実行するとOKみたいな表示は出るのですが…なりません。
0035nobodyさん2007/10/29(月) 21:54:34ID:???
HTTP_Request を使い始めたんですが、これってメモリリークしてませんか?
0036nobodyさん2007/11/01(木) 00:20:40ID:???
Pagerのリンクに出てくるindex.phpって消せないんですかね?
0037nobodyさん2007/11/02(金) 19:40:08ID:???
PEAR DBのプレースホルダに
?と|と&があるみたいなんだけど
|ってmysqlの生sqlでも意味ある文字でしょ?
まずくないの?
0038nobodyさん2007/11/02(金) 20:37:48ID:???
| じゃなくて ! じゃね?
0039nobodyさん2007/11/05(月) 22:09:00ID:ktD3JA9h
PEARのパッケージにソースコードをハイライトしてhtmlに変換するものはないんですか?

欲しいもの
・PHPのソースコードをhtmlで読めるようにする。(例えば開始タグを<phpにする)
・ついでにソースコードに色をつける(例えば<span class="method">print</span>('hogehoge');)
0040nobodyさん2007/11/05(月) 23:09:04ID:???
PEARの前にマニュアル探そうぜ?
http://jp.php.net/manual/ja/function.show-source.php
0041nobodyさん2007/11/06(火) 02:00:29ID:???
>>35
そのままだと、読み込んだページを全部保持してるんだよ。
解除するオプションがあったはず。名前は自分で調べてくれ。
0042nobodyさん2007/11/06(火) 02:14:06ID:???
EventDispatcherてだれが使ってんだ?
0043nobodyさん2007/11/12(月) 02:50:52ID:???
>>39
手軽さなら>40だな
PEARにこだわるなら
http://pear.php.net/package/Text_Highlighter/
だな
性能の高さならGeshiだな
http://qbnz.com/highlighter/

上から順に生成HTMLが汚いかな
0044nobodyさん2007/11/12(月) 18:57:08ID:???
PEAR::DB使ってみたのだが、メモリリークが激しい・・・
使い方間違っているのか・・・
0045nobodyさん2007/11/12(月) 19:15:59ID:???
俺は何度でも書くぞ
PEAR DBはもうバグFIXしかされねてねーんだ
速くて便利で現在もアップデートされているMDB2使え
0046nobodyさん2007/11/12(月) 19:35:12ID:KZwgk9tb
>>45
ちなみに今PEAR DB使ってる場合、
乗り換えって結構簡単?
0047nobodyさん2007/11/12(月) 21:11:13ID:???
少し見てみればいいのに
0048nobodyさん2007/11/12(月) 21:12:50ID:???
>>46
簡単だ、DB使ってるなら機能的には同じ機能がMDB2にもある
メソッド名が変わってるものは http://www.phpied.com/db-2-mdb2/ で対応がわかる
「DB MDB2 移行」あたりでぐぐれば他の情報も出てくるだろう
よっぽど変なことしてない限りは既存のソースの
名前を一括リプレースしていくだけでほぼ移行できるはずだ、
まあもちろんテストは必要だが
0049nobodyさん2007/11/15(木) 10:05:46ID:???
HTTP_Clientでhttpsにログインしたいんだけど、無理ですか?
0050nobodyさん2007/11/15(木) 11:08:50ID:???
>>49
--with-openssl で可能と思いますが。
0051nobodyさん2007/11/20(火) 21:58:04ID:???
PEARのMDB2+php4.4.7を利用してMySQL4.0.26(日本語に最適だと思って)に接続しています。
テーブルのカラム名にふんだんに日本語を利用しているのですが、
@php標準のmysql_field_name関数でカラム名を取得した場合
APEAR::MDB2のarray_keys($inQueryResult->getColumnNames())にて取得
(カラム名の取得方法が分からないので苦肉の策;)した場合

@だと正確に日本語を取得できるのですがAだと一部(だから厄介)日本語が化けますし、大文字の英字が小文字になります。
例:ユーザID → ユーブid
パスワード → パベワード
レコード → レビード


分かる方いらっしゃいましたら回避方法をお教えいただけますでしょうか。
また、まだ使い始めなのですがPEAR::MDB2はこういう症状は多いのでしょうか?
0052nobodyさん2007/11/20(火) 22:07:49ID:???
まず相談内容が文字化けしてる点ね。

パベワード
レビード

は、かわいいから許してやって。
0053nobodyさん2007/11/20(火) 22:50:08ID:???
>>51
カラム名にマルチバイト文字なんて使うなよ
どうしてもって言うならMDB2の場合
Reverseモジュールをloadしてtableinfoメソッドで取ってみるとか
ていうかカラム名にマルチバイト文字なんて使うなよ
0054nobodyさん2007/11/21(水) 06:35:27ID:???
> 分かる方いらっしゃいましたら回避方法をお教えいただけますでしょうか。
> また、まだ使い始めなのですがPEAR::MDB2はこういう症状は多いのでしょうか?
こんな事言ってるってことは、このデータベースをセットアップしたのは 51じゃないんじゃないか?
恐らくセットアップした本人がバックれて、尻拭いさせられてるんじゃw
0055nobodyさん2007/11/21(水) 22:38:49ID:???
52-54さん
回答ありがとうございます。
DBですが、先輩の引退につき、まったく部署や開発チームは違ったんですが
私が引き継ぐことになったものです。
PEAR自体は私の独断で使ってみようかなと思った次第です。

あれからも色々と調べたのですが、文字化け以前に53さんのおっしゃる
TableInfo()すらCallできずundefined methodやfunction on a non-object
も回避できない状態でしたので、自分にはまだクラスまわりの勉強が不足
していると判断しました;
納期の関係もあるので現在上手くいっているphp標準関数で取り合えずは
処理し、しかし気になるのでPEARは個人的に気長に追いかけるとします。

そしてやっと今から個人的なPEARを追う時間です。


$mdb2->loadModule('Manager');でManagerのロードには成功し、
listTables()などをCallできるのですが
$mdb2->loadModule('Reverse');でReverseのロードに失敗しているのか
分かりませんがTableInfo()がundefined methodとなってしまいます。
Managerがロードできているので環境や設定ファイルは大丈夫だと思うの
ですが、また、ディレクトリやそれぞれのmysql.phpと中身のメソッドは
存在するのですが、何が原因かどなたか分かりますでしょうか。
0056nobodyさん2007/11/21(水) 23:22:13ID:???
>>55
ManagerはロードできるのにReverseだけうまくいかないのかあ
とりあえずloadModuleは失敗してたらPEAR_Errorを返すから
$result = $mdb2->loadModule('Reverse');
if (PEAR::isError($result)) {
 echo $result->getMessage();
 exit();
}
してみてReverseのloadModuleが失敗してないか調べてみるとか
0057nobodyさん2007/11/21(水) 23:47:30ID:???
51=55です、55の補足です。
●Manager
$mdb2->loadModule('Manager');
$buff = $mdb2->manager->listTables();
var_dump($buff);
→成功(php4では「manager->」必須のようです
http://manual.jpnote.net/pear/package.database.mdb2.intro-manager-module.html)
「manager->」を除いた場合
buff = $mdb2->listTables();
→Call to undefined method: mdb2_driver_mysql->listtables() ・・・
●Reverse
$mdb2->loadModule('Reverse');
$buff = $mdb2->TableInfo();
var_dump($buff);
→Call to undefined method: mdb2_driver_mysql->tableinfo() in ・・・
「Reverse->」を足した場合
$buff = $mdb2->Reverse->TableInfo();
→Call to a member function on a non-object in ・・・

いまいちphpのエラー内容は解釈苦手なのですがReverseの2つのエラー
はどちらも解答に近づいていない気がします。
0058nobodyさん2007/11/21(水) 23:48:53ID:???
>>56さん
返信ありがとうございます、確認してみましたところとくに表示は出てきませんでした。

『Reverse モジュール (API) - スキーマのリバースエンジニアリングを
MDB2_Reverse_Common クラスで抽象化します。』
という記載がマニュアルにあったので
@スキーマを別途インストールして検証してみます。
また、どうにもMDB2+php4でそもそも動くのかというところから検証すべく
Aphp5+MDB2で検証してみます。
会社の環境は変更できないため自宅で環境を作ってからの検証
になりますので気長にやります。
他、なにかヒントになるような確認事項等ありましたらお願いします。

あと、回答遅くなりましたが日本語でのカラム名ですが、
たしかにおっしゃる通りです。私もこれまで思ってはいましたが実際挑戦する
ことになったのは今回が初です。
しかしながら、「もしも気兼ねなく日本語使えたら」という思いで頑張ります。
オープンソースの世界では無謀な挑戦かもしれませんが。
0059nobodyさん2007/11/22(木) 08:38:13ID:nlNH1bOE
日本語でカラム名をつける発想は無かったわ。
0060nobodyさん2007/11/25(日) 15:12:08ID:mmjJDucQ
pear つながらん

go-pear.org 自体がなくなってるって、あかんやろ!

んで、 http://pear.php.net/go-pear もつながらん!

PEARインストールできひんやんけボケ
0061nobodyさん2007/11/25(日) 15:17:37ID:???
PHP6でpearがコアに統合されたから役目が終わったんだろ
0062nobodyさん2007/11/26(月) 11:14:04ID:???
>>60 今調べたらアクセスできたよ。
0063nobodyさん2007/11/29(木) 15:59:33ID:5JTcagKP
「下らねぇ…」スレが荒れてますので、こちらで質問させてください。

特段の変更無く PHP をインストールした場合、pecl は勝手にインストールされるものですか?
それとも、設定の変更や、PHPとは別に後で追加する必要があるものですか?

(PHP 5.2.4、Apache/2.2.6、FreeBSD 6.2-RELEASE)
0064nobodyさん2007/11/29(木) 16:11:42ID:???
>>63
peclはインストールされません
http://jp.php.net/manual/ja/install.pecl.php
0065nobodyさん2007/11/29(木) 19:23:28ID:5JTcagKP
回答ありがとうございます。

リンク先のマニュアルは先日読んだのですが、イマイチ理解できませんでした。
ここで説明しているのは PECL 拡張モジュール のインストール方法ですよね?
pecl の実行プログラム(管理プログラム) のインストールはどうなのでしょうか?

「PECL は PHP 拡張モジュールのリポジトリで、 PEAR パッケージシステムを経由して使用可能です。」
とありますが、PEARを使って、PECL をインストールするという意味でしょうか?
0066nobodyさん2007/11/29(木) 19:24:53ID:???
【誤】 とありますが、PEARを使って、PECL をインストールするという意味でしょうか?
【正】 とありますが、PEARを使って、PECL の管理プログラムをインストールするという意味でしょうか?
0067nobodyさん2007/11/29(木) 20:24:27ID:???
イマイチ理解できませんでしたじゃなくて
自分の全能力をかけて理解しろ。
0068nobodyさん2007/11/29(木) 20:35:01ID:???
翻訳が下手なんだろ。
原文読んでみたら。
0069nobodyさん2007/11/30(金) 11:53:24ID:???
それだと英語は読めませんっていいそうだな
0070nobodyさん2007/11/30(金) 12:03:53ID:???
>>65
まずpeclコマンドがあるか調べる
$ which pecl
パスが出てくるなら入ってる、not foundなら入ってない

特段の変更無くインストールしたって言ってもソースから入れたのか
ディストリのパッケージシステムで入れたのかconfigureでも色々変わってくる
pearを入れたらpeclコマンドも付いて来たと思う

ソースからphpを入れてる場合、configureでpearインストールを
offにしてない限りはpearが入るので普通はpeclも入る

パッケージでphpを入れただけの場合はおそらくpearは入らない、
debianではphp-pearというpearのパッケージにpeclコマンドが同梱されている
俺はdebianを使っているのでBSDのportsが
どういうパッケージ構成かは知らないが
おそらくportsでも同じようにpearのパッケージに含まれてるんじゃないかと思う
なのでパッケージで管理してるならpearのパッケージを入れてやれば良い

基本的にこういうのはUnix/Linux周りの話だ
これという回答は環境によるのでこれくらいしか答えられん
0071nobodyさん2007/11/30(金) 12:14:41ID:???
俺はportsでpear入れるの嫌だなぁ。
pearがパッケージになってるのに、
それをさらにportsするってあんまり意味がない。
0072712007/11/30(金) 12:16:31ID:???
>>71はPEAR自体ではなく、PEAR内の様々なパッケージにおいて。
0073702007/11/30(金) 12:55:41ID:???
勘違いされてるとアレなので、
>>70でpearのパッケージと書いてるのは
「PEAR自体(PEARインストーラ)」のこと
あとそれが良い悪いの話じゃなく
あくまでpeclインストールにおける説明の話

>>71
もちろん俺も「PEARモジュールのパッケージ」はPEARで入れている
aptでPEARモジュールを入れたりはしないし俺も嫌だ
0074nobodyさん2007/11/30(金) 13:09:33ID:BdEY/zDV
>>70
現時点で、pecl コマンドは存在しています。
そのコマンドがどの時点でインストールされたのかを把握したいのです。
サーバ管理者と pecl について認識の違いがありまして。

> ソースからphpを入れてる場合、configureでpearインストールを
> offにしてない限りはpearが入るので普通はpeclも入る

まさに知りたかった核心部分です。ありがとうございます。
0075nobodyさん2007/11/30(金) 17:17:27ID:BdEY/zDV
> PHP5の仕様としてpecl(の管理プログラム)が導入されますが、
> peclの拡張モジュールを導入しなければ、
> 正常に動作することは御座いません。

というのは、正しいのでしょうか?
0076nobodyさん2007/12/03(月) 14:41:35ID:???
ローカルではPEARのインストールできたのですけど、レンサバではインストールできないってことはありますか?

ちなみに候補はロリポ、ハッスル、tok2です。
0077nobodyさん2007/12/03(月) 18:37:46ID:L6QEctwt
そんな高度なこと聞くな
0078nobodyさん2007/12/03(月) 18:44:44ID:???
レンサバによるんだろうが、最悪
ローカルでインストールしたPEARをフォルダごと、
レンサバに転送すれば使える
0079nobodyさん2007/12/08(土) 01:05:05ID:RahyBUvh
>>76

go-pearでインストールするのが楽だとおもう。

http://www.google.co.jp/search?hl=ja&q=go-pear.php&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0080nobodyさん2007/12/10(月) 09:19:37ID:???
>>76
共有ホストでの PEAR のローカルコピーのインストール
http://pear.php.net/manual/ja/installation.shared.php
0081nobodyさん2007/12/13(木) 20:23:04ID:cpa1InAO
携帯サイト用にKemp上でNet_UserAgent_Mobileを使ってるんですが
Fatal error: Call to a member function getModel() on a non-object in Net/UserAgent/Mobile.php on line 170
となってはまってしまってます。同じ症状なった方いますか?PHPは5.2.5です。
0082nobodyさん2007/12/18(火) 12:08:19ID:BXvnHaJk
最近pearはじめました
$DB = NewADOConnection(_DB_TYPE);
$DB -> pconnect(_DB_HOST, _DB_USER, _DB_PASS, _DB_NAME);
$table = _DB_SALOON_KIHON_TB;
$sql="select * from ".$table." where uId = ".$_SESSION['uId'];
$sqlResult = $DB -> Execute($sql);
$obj = $sqlResult->fetchnextObject();
として、以下を実行しても値が取れないんだけどどこが問題ですか?(接続などはOKです)
echo $obj->Fields[loginPass];
0083nobodyさん2007/12/18(火) 12:31:36ID:???
print_r($obj->Fields);
の結果は?
0084nobodyさん2007/12/18(火) 12:48:58ID:BXvnHaJk
>>83
ありがとう それの結果は戻ってきません
print_r($sqlResult); は配列?で大量に戻ってくるんですが…
0085822007/12/18(火) 18:37:51ID:???
解決しました 解決じゃないんだけど、
$obj->カラム名というやり方で目的は達成できたということで…
>>83 ありがとう
0086nobodyさん2007/12/18(火) 22:06:17ID:???
>>84
var_dump($obj);の結果は?
0087nobodyさん2007/12/31(月) 15:45:26ID:???
peclのid3を
pecl install id3
ってやって全部うまくいって入ったんだけど
入れた後はどうやったらその関数使えるようになるの?


インストールしたあとすぐにつかえるとおもって
<?php
print_r(id3_get_tag("test.mp3"));
?>
ってファイル作ってもなにも動作しないや・・・

なんか設定必要?
一応アパッチの再起動かけたけど駄目だった
0088nobodyさん2007/12/31(月) 16:08:48ID:???
>>87
php.ini に直接か php.d/id3.iniを作って
extension=id3.so //id3.soであってるかどうかは知らん。
と書かなきゃいけないんじゃね。
その後、apache再起動。

もしくはdl()でロードするとか。
0089nobodyさん2007/12/31(月) 17:52:36ID:???
>>88
php.iniに
extension_dir = "/usr/lib/php/modules"
って書いてあって
/usr/lib/php/modulesには
id3.soが入ってるからいいかなぁって、おもったけど
0090nobodyさん2007/12/31(月) 18:13:33ID:???
>>88さんのとおりやったらできた
ありがとうございます
0091nobodyさん2007/12/31(月) 18:30:34ID:???
いや、そこは ttp://jp.php.net/manual/ja/install.pecl.php を見て、
extension_dirと extensionの違いが分かりました、とかそういう自己レスが欲しいところかと・・・
0092nobodyさん2007/12/31(月) 21:02:43ID:???
>>91
それはphp.iniに書いてある

; Note that it should be the name of the module only; no directory information
; needs to go here. Specify the location of the extension with the
; extension_dir directive above.

って所読んだら
extension_dirはモジュールファイルが置いてある場所の指定だけで
extension=ext.soを使って動的に読む込むという風に自己解釈して終わらせちゃいました。
すみません リンクを読んで勉強したいと思います
0093nobodyさん2007/12/31(月) 21:12:02ID:???
どうでもいいことなんだけど、いちいち言い訳をしないと前に進まない奴なんだな。
まぁ、言い訳ばっかりして、ちーとも前に進まない輩も多いのでまだマシなだけどな。
おまけに2ちゃんねるで鵜呑みにするのも危ないが... まぁがんばれ。
0094nobodyさん2007/12/31(月) 21:49:50ID:???
どうでもいいことなんだけど、謝ることより他に言うべきもっと大事なことがあるだろうと・・・
0095nobodyさん2008/01/06(日) 15:06:56ID:???
pear.php.net 死んでる?
0096nobodyさん2008/01/06(日) 15:56:58ID:???
死んでる。Webも見れんし、インストールもできん。日曜プログラマの俺涙目・・・
0097nobodyさん2008/01/06(日) 19:50:09ID:???
復活!
0098nobodyさん2008/01/06(日) 23:22:07ID:???
お色直ししてました。

pearコマンド(接続先も)も変わったので、使っている方はご注意あれ。
0099nobodyさん2008/01/07(月) 03:57:18ID:???
ふざけんなよ
0100nobodyさん2008/01/15(火) 19:48:26ID:l6BbRMgw
質問させてください。

現在、PHP 4.3.9が稼動している共用レンタルサーバにて
自分が扱えるディレクトリに FTP クライアントを使って
パッケージ・マネージャを設置し、ブラウザでアクセスする形で、
PEAR を使える環境を整えたく思っています。

そこで http://pear.php.net/go-pear にブラウザでアクセスして
そこで表示されるソースを go-pear.php として保存、
これをサーバにアップロードして、ブラウザでアクセスしたのですが、
「Downloading package: ***」のところで反応が無くなってしまいます。
どのパッケージをダウンロードしている所で止まるかは、
毎回変わるのですが、頻度としては「HTML_Template_IT-stable」か、
「Net_UserAgent_Detect-stable」の所でダメになることが多いです。

どのような方法を使えば PEAR を使用できるようになりますでしょうか?
どなたかご教示ください。よろしくお願いします。
0101nobodyさん2008/01/15(火) 20:06:08ID:???
>>100
共有サーバの設定でスクリプトがタイムアウトしてるんじゃないかな
共有サーバでPEAR使うならローカルに一旦落としたのを
FTPでそのままアップするのが一番問題無くて吉
特にあんまりPEARに慣れてない人はね

webインターフェイスのパッケージマネージャは
ローカル環境か専用サーバで使ってください
01021002008/01/15(火) 20:35:16ID:l6BbRMgw
>>101
レスありがとうございます。
実はローカル(WinXP、Win2K)でもインストールを試してみたのですが、
全く同じ結果になってしまっています。
ローカルで試すと、>>100 の時点で Apache2 に CPU が占有されたまま、
半フリーズ状態になってしまいました。
ちなみに go-pear.bat を実行する方法でも失敗しています。
(これでの失敗の状況は、今回のものとは違いました)

pear.php.net/go-pear で表示されるソースには
「PHP Version 5」と書かれているので、PHP4以下では動作しないのかも、
などと思っていますが、これも全く確証がありません。
重ねてで恐縮ですが、何卒お知恵をお貸しください。
よろしくお願いします。
0103nobodyさん2008/01/15(火) 22:26:43ID:???
>>102
webインターフェイスの方はあまり使わないから何とも言えないけど、
パッケージのダウンロードがひとつも成功せずにフリーズするなら
ファイアウォールとかでネットワークが外へ取りにいけないとか?
http://pear.php.net/go-pearのソースはPHP 4.3以上はサポートしてるはず

go-pear.batはエラーメッセージがどう出てるかによる
あと5.2.1かそこら辺のgo-pear.batはバグがある

webインターフェイスのは正直エラーがわかりにくいので
cliインターフェイス(go-pear.bat)のやり方を調べた方がいいと思う
01041002008/01/15(火) 23:15:02ID:l6BbRMgw
>>103
レスありがとうございます。
この1週間ほどずっとうまくいかなかったので、レスを頂けて大変嬉しいです。

(1/2) (長いので、分割して書き込みます)
まず、Windows 版 PHP4.3.9 に付属していた go-pear.bat を実行すると
「install ok: XML_Parser 1.0.1 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
\gop(ここはその時々で変わる).tmp\PHPUnit-0.6.2". Invalid tgz file.」
とエラーが表示されました。

そこで PEAR/go-pear.php 内の
162行目の「'PHPUnit-0.6.2'」を「'PHPUnit'」に、
618行目の「$url = "http://cvs.php.net/co.php/php-src/pear/PEAR.php?p=1&r=$r";」を
「$url = "http://cvs.php.net/viewvc.cgi/php-src/pear/PEAR.php?revision=1.50.2.18";」に、
632行目の「$url = "http://cvs.php.net/co.php/pear/Archive_Tar/Archive/Tar.php?p=1&r=$r";」を
「$url = "http://cvs.php.net/viewvc.cgi/pear/Archive_Tar/Archive/Tar.php?revision=1.42";」に、
646行目の「$url = "http://cvs.php.net/co.php/php-src/pear/Console/Getopt.php?p=1&r=$r";」を
「$url = "http://cvs.php.net/viewvc.cgi/php-src/pear/Console/Getopt.php?revision=1.21.4.8";」に、
それぞれ書き換えて再試行するとインストール自体は成功しました。

しかし PEAR_ENV.reg を適用して再起動後に
「pear upgrade-all」や「pear install HTTP_Download」などを実行しても
「HTTP error, got response: HTTP/1.1 404 Not Found
Didn't receive 200 OK from remote server. (HTTP/1.1 404 Not Found)」
と表示されてパッケージの取得ができず、使用したいライブラリが使えない状態でした。
01051002008/01/15(火) 23:15:33ID:l6BbRMgw
(2/2)
次に、pear.php.net/go-pear で取得したソースを
go-pear.php として go-pear.bat を実行してやりなおすと、
「Fatal error: Call to undefined function: staticpusherrorhandling() in
C:\php\temp\gop(ここはその時々で変わる).tmp\PEAR\Downloader.php on line 279」
となり、処理がストップしました。
このエラーの一時ファイル内の Downloader.php の279行目を見たくても、
処理中に一瞬で削除されて取得できず、どうしても解決策が練れませんでした。

そこでブラウザでアクセスでのインストールを試行した結果は以下の通りになりました。

PHP4.3.9 の go-pear.php(Version 0.2.2)を使用
「Fatal error: Undefined class name 'pear' in C:(doc_root)\PEAR\go-pear.php on line 681」

PHP4.3.9 の go-pear.php 改造版(Version 0.2.2)を使用
「Fatal error: Call to undefined function: staticpusherrorhandling() in
C:\WINNT\TEMP\gop(ここはその時々で変わる).tmp\PEAR\Command\Install.php on line 548」

pear.php.net/go-pear で取得した go-pear.php(Version 1.0.2)を使用
途中でフリーズ。

以上がこれまでに試行錯誤したまとめです。
長くなりましたが、どうぞよろしくお願いいたします。
0106nobodyさん2008/01/16(水) 00:15:21ID:???
5系列にするのが一番いいけど、4系で入れたいなら
http://www.php.net/releases/ に4系のWindowsのパッケージがあるから
とりあえず一番新しいのにした方が良いかと
4.3.9でもreleaseの日付見ると4年近く前だしさすがに古いと思う
01071062008/01/16(水) 00:46:59ID:???
ああ、レンサバとバージョン合わせてて4.3.9から変えられないってことなら
最新のパッケージから解凍して出来るPEARディレクトリを
4.3.9のPEARディレクトリにまるごと上書きすれば最新のgo-pearで動くと思う
01081002008/01/17(木) 02:26:18ID:???
>>106-107
相談に乗っていただいてありがとうございました。結果を報告します。
結論から言うと、PHP4.3.9 の環境下では PEAR をインストールすることができませんでした。
PEAR 1.6.2 のパッケージを該当フォルダに上書きしても、同様に
「Fatal error: Call to undefined function: staticpusherrorhandling() in...」のエラーが出て
インストールに失敗しました。
そこでヤケクソで別環境を用意し、PHP5.2.5を稼動させてから go-pear.bat を実行すると
インストールすることができました。
PHP5 のインストールは「PHP5.dll」が無かったりして大変でしたが、
これで PEAR の実行環境自体は整いました。
今後はこの環境で整えたパッケージを PHP4.3.9 環境に持っていっても
使えるかどうかを試行錯誤することになるかなと思います。
アドバイスいただいてありがとうございました。
0109nobodyさん2008/01/17(木) 10:46:57ID:O85eEBCt
PEAR::DBで、最後に送信したクエリがlast_queryで残りますが、
それによって返ってきた値はどこに入るのでしょうか?

クエリが実行されていなかったので、何かPEARで取得できない特殊なエラーでもあるのではと思いました。

実行クエリ
INSERT INTO hoge (id,name,address,telephone,email,keyword,catch_copy) VALUES (60006,'test','東京 ','','','','test')

print_r(DBオブジェクト)で中身を見ても、特にエラーが発生した様子はありません。
ただ、クエリが実行されていませんでした。
0110nobodyさん2008/01/17(木) 12:03:30ID:???
>>109
DB::isError($result)がtrueなら
DB側からのエラーが戻ってきてると思うんだが。
0111nobodyさん2008/01/17(木) 13:08:27ID:O85eEBCt
>>110
PEAR::isError()で確認してみましたが、Falseでした。
0112nobodyさん2008/01/17(木) 14:44:06ID:???
マルチ乙
0113nobodyさん2008/01/19(土) 19:00:56ID:FuloTUhn
pear::calenderを使ってみようと思ってます。
で、いろんなサイトのサンプルを見ると正方形型の(土曜で次の行に折り返す形の)
カレンダーばかりです。
月頭から月末までタテに書いていくタイプのカレンダーって作れますか?
左端に日・曜日を表示して、その右側にイベント名を入れる形で
スケジューラに利用したいんですが…
0114nobodyさん2008/01/19(土) 19:02:27ID:???
できるよ
01151132008/01/19(土) 19:04:44ID:FuloTUhn
>>114
すばやい回答ありがとうございます!
参考になるサイト、ご存じないでしょうか?
ググっても出てこないんですよねー それくらい自分でやれってことかなぁ
0116nobodyさん2008/01/19(土) 19:06:54ID:???
>>115
http://pear.php.net/manual/ja/package.datetime.calendar.php
01171132008/01/19(土) 22:20:54ID:???
ありがとう 確かにマニュアル見るのが一番ですね
サンキューです
0118nobodyさん2008/01/21(月) 18:09:31ID:kkXgkN55
PEAR::DBで、INSERTはautoExecuteで自動的にエスケープをして放り込んでくれますが、
SELECT文を簡単に使う方法などありませんか?
どうしてもMySQLとPgSQLで書き方が違うので、データベースを移す場合にSQL文を書き換えなくてはいけません。
(CONCAT⇔||や、LIMIT 1,10⇔LIMIT 1 OFFSET 10など・・・。)
■ このスレッドは過去ログ倉庫に格納されています