【PHP】PEAR Part3
MDB_QueryToolで3つのテーブルをJOINしたいんだけど、 どうやったらいいのか分かりません。 表A Id,a_name 1,name1 2,name2 表B Id,b_name 1,name1 2,name2 表c Id,c_name 1,name1 2,name2 A.id = B.id and A.id=C.id and B.id =C.idの条件で結合して Id,a_name,b_name,c_name が欲しいんだけど、どうやって3表をJOINしたらいいのか、 JOINの条件はどう指定したらいいのか分からないので、 教えてください。orz select * from A natural join B natural join C でどうかしら? >>4 d。 でも可能な限りMDB_QueryToolでやってみたいのです。 SQLなら select A.Id,A.a_name,B.b_name,C.c_name from A,B,C where A.id = B.id and A.id=C.id and B.id =C.id でも良いと思うのです。 MDB_QueryToolじゃJOINの入れ子は無理かなぁ。 出来たとしても、インラインビューとかサブクエリの使えない MySQL3.23では実行できない可能性も高いけど・・・orz >>5 http://pear.php.net/manual/ja/package.database.mdb-querytool.api.php ドキュメント見る限りsetJoinでテーブル名3つと条件まとめて指定か addJoinでテーブルと条件をそれぞれ追加していけばいいんじゃないか? QueryTool使ったことないのでなんとも言えないが >>6 d setJoin(Array('A','B','C'),'A.id = B.id and A.id=C.id and B.id =C.id'); とかやってみればいいのかな。 最初にsetJoin + addJoinでやってみたけど、 getQueryStringが戻ってこなかったんだよ。orz とりあえず、QueryTool使わずに 目的の戻り値は得られたんだけど、 もうちょっと精進してみるわ。 sendmail_path 『/usr/sbin/sendmail -t -i』 $params['sendmail_path'] = "/usr/sbin/sendmail"; $params['sendmail_args'] = "-t -i"; $mail =& Mail::factory('sendmail', $params); を行うと、PEARで下記のエラーが返ってきます。 Unable to find class for driver sendmail サーバーではsendmailが使えるはずなのに、sendmailへのパスが見つからないということでしょうか? 解決しました。 原因はMailディレクトリをアップロードしていませんでした query()とexecute()の違いが良く判りません 日本語マニュアルだとquery()は >パラメータ $params を指定しており、クエリ内で プレースホルダを使用している場合に、 prepare() および execute() の代わりに使用されます。 とのことなんですが、execute()でもプレースホルダは使えますよね・・・ query()を使った方が性能がいいんでしょうか。 >>11 DBはもう使うなMDB2使え で、MDB2ではSELECTする時はquery、INSERT/UPDATE/DELETEする時はexecだ データを要求して受け取るのかDB内部でデータ操作を行うのかの違いだ ありがとうございます MDB2の学習をしてみようと思います こんにちは 追加インストールした二つのモジュールについて質問です。 ------------------------------------------------- require_once "HTTP/Request.php"; require_once "HTTP/Client.php"; ------------------------------------------------- Request.phpは読んでくれるのですが Warning: main(HTTP/Client.php) [function.main]: failed to open stream: No such file or directory となります。 HTTPディレクトリには両方とも入っており(その下のクッキーマージャーも)正常だとは思うのですが… .httには「php_value include_path ".:/home/ああああ/pear/PEAR"」と書いてあります 何かコンフィグを編集しないといけないのでしょうか? include_pathの通ってるところにファイルが無いだけ 別のディレクトリに再インストールして 改めてパスを通したら動作しました。 どうしてRequestは動いてclientは見つけてくれなかったんだろう… PEARのDB使うとクエリ実行のときに勝手にSQL分がエスケープされてるの? Spreadsheet_Excel_Writerで、日本語データをxlsで書き出すと、セル内の改行に♪が加わってしまうことがあります。 このような場合、一度セルを編集状態にすると♪が消えるのですが、この時フォント欄が文字化けしとります。 setFontFamilyの値は英語フォント前提のようなのですが、これって指定した方がいいですか? ____ / ─ ─\ / (●) (●)\ どれ、そろそろ回答が… | (__人__) | .________ \ `⌒´ ./ .| | | ノ \ | | | ____ /::::::─三三─\ 華麗にスルーー /:::::::: ( ○)三(○)\ |::::::::::::::::::::(__人__):::: | ________ \::::::::: |r┬-| / | | | ノ:::::::::::: `ー'´ \ | | | >>21 ∧__∧ ( ´・ω・)∧∧l||l /⌒ ,つ⌒ヽ ) (___ ( __) "''"" "'゙''` '゙ ゙゚' ''' '' ''' ゚` ''"" "' Spreadsheet_Excel_Writerって使い物になるのかな? Readerの方は使えんね。 日本語入れてちょっと複雑にしたら すぐに読めなくなる。 この間は途中のシートを削除したら シート情報が正しく読み取れなくなった。 いったん、Exce95形式で保存したりして復旧させたが。 まあ使えんといいながら、開発ツールとして使ってはいるわけだが。 >>20 PHP Excel Creator Libraryがいいんじゃね? http://pizzaseo.com/php-excel-creator-class 個人的にはExcel_Reviserがオススメだけど。 xoops界隈の開発者のソースに、何かを期待している方が間違っているってことが まだ分からないのかw WindowsのPHPだとネイティブにExcelを扱えなかったっけか。 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" となっています。 何か問題があるでしょうか?また、他に確認しないといけない点はどこでしょうか? PATHって、%PATH%とか入れといた方がいいんでないの? ユーザ側の環境変数で追加する場合は。 msconfigでやってみようと思ったのですが、サイトに書かれていた状況と違ったので断念しました。 ただ、PATH=C:WIN〜に「;C:\php」しろって書いてあったのですが、setで見てみると既にあるっぽいので良いかと… というか、書かれてた状況になってないのが既に問題なんですけどねw でもどうやってもその通りにならないのです。ver.が違うからだとは思うのですが… >>32 で、バージョンはいくつよ。 経験上、4.3以降ならgo-pear.bat実行した後、 出来たregファイルをダブルクリックして、 レジストリ登録すれば滅多なことはないはずだが。 >>33 出先から失礼します。php5 の初期ver.です。 go-pear.batに問題がある(今は新しいのになってるらしい)と書いてたサイトがあったので、 最初のパッケージに入っていたのと、新しいgo-pear.batを試しましたがダメでした。 regファイル実行するとOKみたいな表示は出るのですが…なりません。 HTTP_Request を使い始めたんですが、これってメモリリークしてませんか? Pagerのリンクに出てくるindex.phpって消せないんですかね? PEAR DBのプレースホルダに ?と|と&があるみたいなんだけど |ってmysqlの生sqlでも意味ある文字でしょ? まずくないの? PEARのパッケージにソースコードをハイライトしてhtmlに変換するものはないんですか? 欲しいもの ・PHPのソースコードをhtmlで読めるようにする。(例えば開始タグを<phpにする) ・ついでにソースコードに色をつける(例えば<span class="method">print</span>('hogehoge');) >>35 そのままだと、読み込んだページを全部保持してるんだよ。 解除するオプションがあったはず。名前は自分で調べてくれ。 EventDispatcherてだれが使ってんだ? PEAR::DB使ってみたのだが、メモリリークが激しい・・・ 使い方間違っているのか・・・ 俺は何度でも書くぞ PEAR DBはもうバグFIXしかされねてねーんだ 速くて便利で現在もアップデートされているMDB2使え >>45 ちなみに今PEAR DB使ってる場合、 乗り換えって結構簡単? >>46 簡単だ、DB使ってるなら機能的には同じ機能がMDB2にもある メソッド名が変わってるものは http://www.phpied.com/db-2-mdb2/ で対応がわかる 「DB MDB2 移行」あたりでぐぐれば他の情報も出てくるだろう よっぽど変なことしてない限りは既存のソースの 名前を一括リプレースしていくだけでほぼ移行できるはずだ、 まあもちろんテストは必要だが HTTP_Clientでhttpsにログインしたいんだけど、無理ですか? >>49 --with-openssl で可能と思いますが。 PEARのMDB2+php4.4.7を利用してMySQL4.0.26(日本語に最適だと思って)に接続しています。 テーブルのカラム名にふんだんに日本語を利用しているのですが、 @php標準のmysql_field_name関数でカラム名を取得した場合 APEAR::MDB2のarray_keys($inQueryResult->getColumnNames())にて取得 (カラム名の取得方法が分からないので苦肉の策;)した場合 @だと正確に日本語を取得できるのですがAだと一部(だから厄介)日本語が化けますし、大文字の英字が小文字になります。 例:ユーザID → ユーブid パスワード → パベワード レコード → レビード 分かる方いらっしゃいましたら回避方法をお教えいただけますでしょうか。 また、まだ使い始めなのですがPEAR::MDB2はこういう症状は多いのでしょうか? まず相談内容が文字化けしてる点ね。 パベワード レビード は、かわいいから許してやって。 >>51 カラム名にマルチバイト文字なんて使うなよ どうしてもって言うならMDB2の場合 Reverseモジュールをloadしてtableinfoメソッドで取ってみるとか ていうかカラム名にマルチバイト文字なんて使うなよ > 分かる方いらっしゃいましたら回避方法をお教えいただけますでしょうか。 > また、まだ使い始めなのですがPEAR::MDB2はこういう症状は多いのでしょうか? こんな事言ってるってことは、このデータベースをセットアップしたのは 51じゃないんじゃないか? 恐らくセットアップした本人がバックれて、尻拭いさせられてるんじゃw 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と中身のメソッドは 存在するのですが、何が原因かどなたか分かりますでしょうか。 >>55 ManagerはロードできるのにReverseだけうまくいかないのかあ とりあえずloadModuleは失敗してたらPEAR_Errorを返すから $result = $mdb2->loadModule('Reverse'); if (PEAR::isError($result)) { echo $result->getMessage(); exit(); } してみてReverseのloadModuleが失敗してないか調べてみるとか 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つのエラー はどちらも解答に近づいていない気がします。 >>56 さん 返信ありがとうございます、確認してみましたところとくに表示は出てきませんでした。 『Reverse モジュール (API) - スキーマのリバースエンジニアリングを MDB2_Reverse_Common クラスで抽象化します。』 という記載がマニュアルにあったので @スキーマを別途インストールして検証してみます。 また、どうにもMDB2+php4でそもそも動くのかというところから検証すべく Aphp5+MDB2で検証してみます。 会社の環境は変更できないため自宅で環境を作ってからの検証 になりますので気長にやります。 他、なにかヒントになるような確認事項等ありましたらお願いします。 あと、回答遅くなりましたが日本語でのカラム名ですが、 たしかにおっしゃる通りです。私もこれまで思ってはいましたが実際挑戦する ことになったのは今回が初です。 しかしながら、「もしも気兼ねなく日本語使えたら」という思いで頑張ります。 オープンソースの世界では無謀な挑戦かもしれませんが。 pear つながらん go-pear.org 自体がなくなってるって、あかんやろ! んで、 http://pear.php.net/go-pear もつながらん! PEARインストールできひんやんけボケ PHP6でpearがコアに統合されたから役目が終わったんだろ 「下らねぇ…」スレが荒れてますので、こちらで質問させてください。 特段の変更無く PHP をインストールした場合、pecl は勝手にインストールされるものですか? それとも、設定の変更や、PHPとは別に後で追加する必要があるものですか? (PHP 5.2.4、Apache/2.2.6、FreeBSD 6.2-RELEASE) 回答ありがとうございます。 リンク先のマニュアルは先日読んだのですが、イマイチ理解できませんでした。 ここで説明しているのは PECL 拡張モジュール のインストール方法ですよね? pecl の実行プログラム(管理プログラム) のインストールはどうなのでしょうか? 「PECL は PHP 拡張モジュールのリポジトリで、 PEAR パッケージシステムを経由して使用可能です。」 とありますが、PEARを使って、PECL をインストールするという意味でしょうか? 【誤】 とありますが、PEARを使って、PECL をインストールするという意味でしょうか? 【正】 とありますが、PEARを使って、PECL の管理プログラムをインストールするという意味でしょうか? イマイチ理解できませんでしたじゃなくて 自分の全能力をかけて理解しろ。 >>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周りの話だ これという回答は環境によるのでこれくらいしか答えられん 俺はportsでpear入れるの嫌だなぁ。 pearがパッケージになってるのに、 それをさらにportsするってあんまり意味がない。 >>71 はPEAR自体ではなく、PEAR内の様々なパッケージにおいて。 勘違いされてるとアレなので、 >>70 でpearのパッケージと書いてるのは 「PEAR自体(PEARインストーラ)」のこと あとそれが良い悪いの話じゃなく あくまでpeclインストールにおける説明の話 >>71 もちろん俺も「PEARモジュールのパッケージ」はPEARで入れている aptでPEARモジュールを入れたりはしないし俺も嫌だ >>70 現時点で、pecl コマンドは存在しています。 そのコマンドがどの時点でインストールされたのかを把握したいのです。 サーバ管理者と pecl について認識の違いがありまして。 > ソースからphpを入れてる場合、configureでpearインストールを > offにしてない限りはpearが入るので普通はpeclも入る まさに知りたかった核心部分です。ありがとうございます。 > PHP5の仕様としてpecl(の管理プログラム)が導入されますが、 > peclの拡張モジュールを導入しなければ、 > 正常に動作することは御座いません。 というのは、正しいのでしょうか? ローカルではPEARのインストールできたのですけど、レンサバではインストールできないってことはありますか? ちなみに候補はロリポ、ハッスル、tok2です。 レンサバによるんだろうが、最悪 ローカルでインストールしたPEARをフォルダごと、 レンサバに転送すれば使える 携帯サイト用に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です。 最近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]; print_r($obj->Fields); の結果は? >>83 ありがとう それの結果は戻ってきません print_r($sqlResult); は配列?で大量に戻ってくるんですが… 解決しました 解決じゃないんだけど、 $obj->カラム名というやり方で目的は達成できたということで… >>83 ありがとう >>84 var_dump($obj);の結果は? peclのid3を pecl install id3 ってやって全部うまくいって入ったんだけど 入れた後はどうやったらその関数使えるようになるの? インストールしたあとすぐにつかえるとおもって <?php print_r(id3_get_tag("test.mp3")); ?> ってファイル作ってもなにも動作しないや・・・ なんか設定必要? 一応アパッチの再起動かけたけど駄目だった >>87 php.ini に直接か php.d/id3.iniを作って extension=id3.so //id3.soであってるかどうかは知らん。 と書かなきゃいけないんじゃね。 その後、apache再起動。 もしくはdl()でロードするとか。 >>88 php.iniに extension_dir = "/usr/lib/php/modules" って書いてあって /usr/lib/php/modulesには id3.soが入ってるからいいかなぁって、おもったけど >>88 さんのとおりやったらできた ありがとうございます いや、そこは ttp://jp.php.net/manual/ja/install.pecl.php を見て、 extension_dirと extensionの違いが分かりました、とかそういう自己レスが欲しいところかと・・・ >>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を使って動的に読む込むという風に自己解釈して終わらせちゃいました。 すみません リンクを読んで勉強したいと思います どうでもいいことなんだけど、いちいち言い訳をしないと前に進まない奴なんだな。 まぁ、言い訳ばっかりして、ちーとも前に進まない輩も多いのでまだマシなだけどな。 おまけに2ちゃんねるで鵜呑みにするのも危ないが... まぁがんばれ。 どうでもいいことなんだけど、謝ることより他に言うべきもっと大事なことがあるだろうと・・・ 死んでる。Webも見れんし、インストールもできん。日曜プログラマの俺涙目・・・ お色直ししてました。 pearコマンド(接続先も)も変わったので、使っている方はご注意あれ。 質問させてください。 現在、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 を使用できるようになりますでしょうか? どなたかご教示ください。よろしくお願いします。 >>100 共有サーバの設定でスクリプトがタイムアウトしてるんじゃないかな 共有サーバでPEAR使うならローカルに一旦落としたのを FTPでそのままアップするのが一番問題無くて吉 特にあんまりPEARに慣れてない人はね webインターフェイスのパッケージマネージャは ローカル環境か専用サーバで使ってください >>101 レスありがとうございます。 実はローカル(WinXP、Win2K)でもインストールを試してみたのですが、 全く同じ結果になってしまっています。 ローカルで試すと、>>100 の時点で Apache2 に CPU が占有されたまま、 半フリーズ状態になってしまいました。 ちなみに go-pear.bat を実行する方法でも失敗しています。 (これでの失敗の状況は、今回のものとは違いました) pear.php.net/go-pear で表示されるソースには 「PHP Version 5」と書かれているので、PHP4以下では動作しないのかも、 などと思っていますが、これも全く確証がありません。 重ねてで恐縮ですが、何卒お知恵をお貸しください。 よろしくお願いします。 >>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)のやり方を調べた方がいいと思う >>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)」 と表示されてパッケージの取得ができず、使用したいライブラリが使えない状態でした。 (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)を使用 途中でフリーズ。 以上がこれまでに試行錯誤したまとめです。 長くなりましたが、どうぞよろしくお願いいたします。 5系列にするのが一番いいけど、4系で入れたいなら http://www.php.net/releases/ に4系のWindowsのパッケージがあるから とりあえず一番新しいのにした方が良いかと 4.3.9でもreleaseの日付見ると4年近く前だしさすがに古いと思う ああ、レンサバとバージョン合わせてて4.3.9から変えられないってことなら 最新のパッケージから解凍して出来るPEARディレクトリを 4.3.9のPEARディレクトリにまるごと上書きすれば最新のgo-pearで動くと思う >>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 環境に持っていっても 使えるかどうかを試行錯誤することになるかなと思います。 アドバイスいただいてありがとうございました。 PEAR::DBで、最後に送信したクエリがlast_queryで残りますが、 それによって返ってきた値はどこに入るのでしょうか? クエリが実行されていなかったので、何かPEARで取得できない特殊なエラーでもあるのではと思いました。 実行クエリ INSERT INTO hoge (id,name,address,telephone,email,keyword,catch_copy) VALUES (60006,'test','東京 ','','','','test') print_r(DBオブジェクト)で中身を見ても、特にエラーが発生した様子はありません。 ただ、クエリが実行されていませんでした。 >>109 DB::isError($result)がtrueなら DB側からのエラーが戻ってきてると思うんだが。 >>110 PEAR::isError()で確認してみましたが、Falseでした。 pear::calenderを使ってみようと思ってます。 で、いろんなサイトのサンプルを見ると正方形型の(土曜で次の行に折り返す形の) カレンダーばかりです。 月頭から月末までタテに書いていくタイプのカレンダーって作れますか? 左端に日・曜日を表示して、その右側にイベント名を入れる形で スケジューラに利用したいんですが… >>114 すばやい回答ありがとうございます! 参考になるサイト、ご存じないでしょうか? ググっても出てこないんですよねー それくらい自分でやれってことかなぁ ありがとう 確かにマニュアル見るのが一番ですね サンキューです PEAR::DBで、INSERTはautoExecuteで自動的にエスケープをして放り込んでくれますが、 SELECT文を簡単に使う方法などありませんか? どうしてもMySQLとPgSQLで書き方が違うので、データベースを移す場合にSQL文を書き換えなくてはいけません。 (CONCAT⇔||や、LIMIT 1,10⇔LIMIT 1 OFFSET 10など・・・。) 細かい方言は振り分けるか個別に書くしかないと思うよ limit辺りまでならの文法の差を吸収してくれるライブラリもあると思うけど (QueryToolとかZend_Dbとか) 同時にMySQLとPostgresを絶対対応させないといけない 局面なんてそうそうないし、とりあえずどちらかに絞り込むか、 該当箇所をラップするように自分で書いておけばいいんじゃないかね >>116 俺の探し方が悪いのか、Amazonクラスのマニュアルが見つからないんだけど、 あれば場所を教えて貰えませんか? この辺?ttp://pear.php.net/package/Services_Amazon/docs/latest/Services_Amazon/Services_AmazonECS4.html#class_details pearが使用できないので教えて下さい。 状況としてはttp://ml.php.gr.jp/pipermail/php-users/2003-October/018756.html に似ています。 違いはwindows 98se、 PHP 5.2.5 エラー表記最後の1行です。 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: C:\php\pear >> 自分のはECHOはOFFになります。 それで ttp://ml.php.gr.jp/pipermail/php-users/2003-October/018776.html にsetを確認とありますが、自分のは PATH=C:\WINDOWS;c:\windows;c:\windows\COMMAND;C:\PERL\BIN;C:\PHP;いろいろ windir=C:\WINDOWS BLASTER=A220 I5 D1 T4 P330 TMPTMPTMPTMPT=@includ PMTPMTPMT=@include_path@ "PHP_PEAR_INSTALL_DIR=C:\php\pear" "PHP_PEAR_BIN_DIR=C:\php" "PHP_PEAR_PHP_BIN=C:\php\.\php.exe" と表示されます。"PHP_PEAR 関連の項目が3つしか表示されませんが、ここがおかしいのでしょうか? 他サイトを見た感じ、沢山ありそうなのですが… 続きです。setでは下記のように出て来ないといけないのですか? PHP_BIN=cli\php.exe PHP_PEAR_BIN_DIR=c:\php PHP_PEAR_DATA_DIR=c:\php\pear\data PHP_PEAR_DOC_DIR=c:\php\pear\docs PHP_PEAR_INSTALL_DIR=c:\php\pear PHP_PEAR_PHP_BIN=c:\php\cli\php.exe PHP_PEAR_SYSCONF_DIR=c:\php PHP_PEAR_TEST_DIR=c:\php\pear\tests また、%PHP_PEAR_PHP_BIN% -C -d output_buffering=1 -d include_path=%PHP_PEAR_INSTALL_DIR% -f %PHP_PEAR_INSTALL_DIR%\pearcmd.php も動作しませんでした。 今試しにwin2000で久しぶりに入れてみたけどsetでその3つだけだぜ 4系と5系でのgo-pear.batの違いじゃないかな go-pear.batがうまくいってないんじゃね? もっかい実行してみて最後にエラーらしきメッセージ出てないか見てみ >>124 ありがとうございます! go-pear.batは最初の1回目はエラーもなくc:\php>に戻ってきますが、2回目以降は最後の「なにかキーを」までいって エンター押すと固まります。また、pear.batをコマンドからではなく、ダブルクリックで実行すると同じく固まります。 1度目のgo-pear.batではレジストファイルもちゃんと作成されます。 はじめまして、質問です。 最近、本を買ってPEARの勉強を始めました。 HTML_Menuでメニューを作っているのですが、フレームが1で文字が大きいため、 フレームを0、文字を小さく変更したいと考えていますが、どのようにしてデザインを変更すればいいのかわかりません。 本にはスタイルシートを使えば見栄えをよくできるとだけ書いてありますが、 肝心のスタイルシートを使っての設定方法が書かれていません。 どうすればスタイルシートを設定して、デザインを変更できるのか教えてください。 よろしくお願いします。 >>127 すいません。スタイルシートは一通りわかっています。 HTML_Menuのデフォルトの設定にスタイルシートをどう適用させるのかがわからず困っています。 >>128 何のことかよく分からんがテンプレートを変更すれば見た目は変わる ttp://pear.php.net/manual/en/package.html.html-menu.html-menu-directrenderer.setentrytemplate.php mail_queueについて質問です 例えば1000通のメールを送りたい場合で $max_amount_mails = 50; $mail_queue =& new Mail_Queue($db_options, $mail_options); $mail_queue->sendMailsInQueue($max_amount_mails); で50通ずつメールを送る設定にしたとき、 cronの設定は10分おきぐらいに設定しないといけないのでしょうか? もしくは1日1回cronをまわせば自動的に分散して送れるのでしょうか? 1000通も実際に送るということが試せないので知っている方がいま したらお願いします。 PEARのDBとかMailとかがダウンロードできなくなってしまったんですが、 ダウンロード先がかわったんでしょうか? そういったお知らせはどこで知ることができますか? pearのオリジナルパッケージをつくりました。本家に載せれるほどのものではありません。 フリーのpearサーバーないでしょうか 自分でpearサーバ立てて公開するか、 とりあえずパッケージのurlを公開したら pearコマンドで入れれるのでいいんじゃない やはり無いですか。 ローカルパッケージにしてGoogleのプロジェクトホスティングにファイルとしてアップします。 すいません、自分なりに調べたのですがわからなかったので質問させてください。 HTML_QuickFormで、フォームより入力された数値の比較をしようとしています。 イメージ的には 0 < $sever < 32 であればOKという感じの比較をしたいのですが、 $form->addRule("sever","サーバー番号は1〜31でお願いします。","compare",array(0,32),"client"); では、まったくうまくいきません。 フォームで入力された数値を、addRuleで比較する場合にはどのようにすればいいのでしょうか。 よろしくお願いします。 http://pear.php.net/manual/ja/package.html.html-quickform.intro-validation.php を見ると、compareはある2つの要素に対して用いる規則じゃないか? 規則表の下に >組み込みの規則の使用法は、パッケージに含まれる rules-builtin.php で網羅しています。 >rules-custom.php では、独自の規則クラスの使用法および callback 型の規則の使用方法を説明しています。 >ここでは、数値が最大値と最小値の間にあることを調べるために NumericRange クラスが含まれています。 とあるからこれ見てみると良いかも。 PEARのMail/mimeDecodeで本文を取得するときって、 マルチパートのとき自動的にやってくれないの? 質問です。 以下のクエリ(?)を実行したところ、データベースは作成されたのですが、 テーブルが作成されませんでした。 なぜテーブルが作成されなかったのかアドバイスをお願いします_(._.)_ なお .read コマンドで試したところテーブルは作成されました。 $dsn = 'sqlite:///./db; $db = DB::connect($dsn); if(DB::isError($db)){ die("接続失敗:".$db->getMessage()); } $sql = 'CREATE TABLE member( id INTEGER, username VARCHAR(32), password VARCHAR(50), PRIMARY KEY(id) )'; // クエリー実行 $db->query( $sql ); // エラーチェック if(DB::isError($db)){ die("テーブル作成失敗 : " . $db->getMessage()); } $db->disconnect(); 自己解決しました。 なぜエラーチェックが動かなかったのか、もう少し勉強してみます。 PEAR::DBで一括してデータを格納するときにautoExecuteのINSERTを繰り返すと処理とまらね? メモリ関係だと思うんだが、これってPEAR側のバグなのかな? 一応memory_limitを無制限にしてるんだが・・・。 何が言いたいかというと、PEAR死ね 何件ぐらいしてるのか知らないけど、1万件ぐらいじゃ止まらなかった。 何が言いたいかというと、PEARのせいにするな HTML_QuickForm_inputの拡張クラスが一杯揃っている所ってないかな? しこしこ自分で作っているが車輪を再発明しまっくってんじゃないかと思うと心が折れそう php.根tにあった。邪魔した。 ttp://pear.php.net/packages.php?catpid=10&catname=HTML pear DBを使っているのですが、 mySQLに接続できず、 $db = DB::connect($dsn); でエラーオブジェクトが帰ってきます。 $db->getDebugInfo();を行ってみたところ Unable to include the DB/.php file for '' と表示されてしまいます。 どなたか原因がわかりますでしょうか? よろしくお願いします。 ちなみにPHPのバージョンは4.4.4です。 >>147 さん 解決できました! 147さんの言うとおり $dsnの指定が間違ってたみたいでした。 そんなのすぐ確認しろって感じですよね・・・ ありがとうございます! Win2000PRO、PHP Version 5.2.5、MySQL Version 5.0.45を使っています。 今、はまっているところがありまして、 データベース側は「userID」で登録している項目を $userID = $authobj->getAuthData('userID'); で「userID」と大文字を入れると値を取得できません。 $userID = $authobj->getAuthData('userid'); と小文字に直すと正しく値を取得することが出来ます。 これはauthの仕様なのでしょうか? PEAR:1.7.1 PHP:5.2.1 list-all しても、pear/HTMLとかが出力されません。 1年くらい前に触った時は大量のリストが出力されていたんですが、 いつの間にか全部のパッケージを出力しなくなったんですか? pear channel-update pear.php.netはした? >>151 チャネルのアップデートもやってみたんですが、pear/Mailとか System_xxxxとかXML_xxxxあたりしか出力されません。 例えば install HTML_AJAX とか、個別指定すれば導入はできるん ですけどね…。 こんにちは マイクロソフトのliveページなどでログインして情報を取得したいのですが PEAR HTTP/Clientでログインページにいくと <noscript> <meta http-equiv="Refresh" content="0; URL=http://javas をonにしてね.html"/> </noscript> に引っかかって警告ページに遷移してしまいます。 なにか良い方法はないでしょうか? とりあえずgetしにいくと・・・ require_once 'HTTP/Client.php'; $client = new HTTP_Client(); $client->get('http://login.live.com/login.srf ?wa=wsignin1.0&rpsnv=10&ct=1206578311&rver= 4.5.2135.0&wp=MBI&wreply=https:%2F%2Flive.xbox.com %2Fxweb%2Flive%2Fpassport%2FsetCookies.ashx%3Frru%3 DhttpZ3AZ2FZ2FwwwZ2ExboxZ2EcomZ2FjaZ2DJPZ2Fde faultZ2Ehtm&lc=1041&cb=B001041httpZ3AZ2FZ2Fw wwZ2ExboxZ2EcomZ2FjaZ2DJPZ2FdefaultZ2Ehtm&id=66262'); $response = $client->currentResponse(); var_dump($response); >>153 リダイレクトしないようにすればいい $client->setMaxRedirects(0)して自分でハンドリングしろ >157 すいません勉強不足でした。教えていただいたプロパティでジャンプヘッダーを飛ばし、無事postしました。 レスポンスには <noscript> サインインするには JavaScript が必要です <meta http-equiv="Refresh" content="0; URL=https://login.live.com/jsDisabled.srf?lc=1041 "/> </noscript> と <body onload="javascript:DoSubmit();">DoSubmit()は下記のformをsubmitします。 <form action="https://live.xbox.com/xweb/live/passport/setCookies.ashx?rru=ht 中略 /form> ブラウザでのアクセスは、すぐにセキュリティの何がしでリダイレクトしていいですか?のダイアログがでますので 今度はform inputのとおりに更にpostしてあげたのですが、返ってきたのは Object moved to here.と一言かかれトップページへ促すリンクが・・・ そのままトップをgetしてもサインインしている状態ではありませんでした。 試行錯誤しましたが解決策は見つからず、、、何か至らぬところがありますでしょうか? ・ログインpost→レスポンス→どこかにリダイレクトするソース リダイレクト切ってるから更にプログラムでリダイレクト先にpost→真っ白ページへ飛ばされる→サインインしてない ・ログインpost後のレスポンスをprintしてみる→ポップアップでセキュリティのないページへ云々→ok選択するとログイン後のページへ 何が違うの うわああああぁぁぁ ADODBを利用してスケジューラつくってます 各日ごとに、イベントが0のこともあれば複数のこともあるとして、 「日付:イベント名」という形の一ヶ月のカレンダーを作ろうとしてるのですが うまくいかないです まず、各日ごとのイベントの有無を確認し、あれば、その日にいくつのイベントがあるかを チェックしようとしてたんですが、そこでつまづいています。 流れとしては、、 1)月間のイベントのある日を抜き出すSQLを実行 *この例では3月のイベントを取っています (SELECT * FROM `schedule` WHERE evDay LIKE '2008-03-%' ORDER BY `evDay`) 2)返される結果を$scheResultとしてうけとり 3)$scheResult->field(num)の形で、日にち部分をチェックしてイベント日用の 配列に入れていこうとしています 配列の構造はこんな形になります(イベント日=>その日のイベントの数) $evDayAry:Array ([2008-03-01] => 1 [2008-03-02] => 2 [2008-03-04] => 1 …) [つづく] [つづき] ですが、以下のプログラムを実行すると、どうしても一番最初に配列に格納されるべき 日付のイベント数が一つ少なく入れられてしまいます $evDayAry=array(); //イベントがある日を収める連想配列 [日にち]=>イベント数 while(!$scheResult->EOF){ if(!$evDayAry["{$scheResult->fields[8]}"]){ $evDayAry["{$scheResult->fields[8]}"]=1; }else{ $evDayAry["{$scheResult->fields[8]}"]=($evDayAry["{$scheResult->fields[8]}"]+1); } echo "イベントID:".$scheResult->fields[0]; $scheResult->MoveNext(); } [2008-03-01] => 2 となるべきところが [2008-03-01] => 1 になり、 [2008-03-01] => 1 となるべきところが何も格納されないようになります。 どこがおかしいのでしょう? adodbの内部カーソルの扱いが間違ってるんでしょうか? どなたかよろしくお願いします こんにちは。 言葉足らずの質問になると思いますが、質問させてください。 QuickForm で、メンバーの追加や削除の機能を作っています。 submitボタンで、【追加】【削除】と実行処理の行う場所を選んで移動するのですが、 移動した先では、すでにsubmitボタンが押されたという判定がされているようで、 移動した瞬間に$form->validate()の内側の処理が実行されてしまいます。 例)【削除モード移動ボタン】→削除実行画面に移動→【削除処理実行ボタン】 ※移動した時点ですでに処理実行ボタンが押されたと判定されている。 移動にはhidden要素でmodeを移動するようにしています。 このようにsubmitボタンを押して移動した先で、すでにsubmitボタンが押されていると判定されないようにするにはどうすればいいのでしょうか? どうかアドバイスをよろしくお願いします。 先生、MDB2のautoExecuteでJOINがしたいです。。。 >>165 autoExecuteしなきゃ簡単だろうに。 オープンソースなので他に質問出来そうな場所がないので、 こちらで質問させていただくことをまず始めにお詫びします。 PEAR::Image_Graphを使用して円グラフを作成しています。 マーカー部分に、"項目名 XX%"の用に表示させたいと思っています。 項目名を表示する方法をわかる方がいれば教えてもらえないでしょうか? 円グラフの85.7%とか表示される部分(マーカー)にて 項目名を表示させたいと思っています。 $Marker =& $Plot->addNew('Image_Graph_Marker_Value', IMAGE_GRAPH_PCT_Y_TOTAL); $Marker->setDataPreprocessor(Image_Graph::factory('Image_Graph_DataPreprocessor_Formatted', '%0.1f%%')); とりあえずこれがマーカー表示処理です。 ですが項目名を追加する処理のサンプルとかを探しているのですが見当たらない状況です。 以上、お願いします。 >>167 ,169 ttp://pear.veggerby.dk/samples/ ここは見た? Meat Exportのサンプルのことかな、多分。 >>170 返信ありがとです。 大体のソースはそこを見本にしています。 見た限り、そういったマーカー追加処理はなかったと思います。 念のため、も一度確認してきます。 まあ最悪,クラスライブラリだし中見て編集しちゃえば linuxのyumでpearをインスコしたんですが、 これでもうpearは使えるようになったのでしょうか? CENT OSです。 Linux使っている方教えてください。 pearコマンド打ちました。 そしたら PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/msql.so' - /usr/lib/php/modules/msql.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: Module 'mbstring' already loaded in Unknown on line 0 PHP Warning: Module 'mysql' already loaded in Unknown on line 0 PHP Warning: Module 'mysqli' already loaded in Unknown on line 0 Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.1 stable Console_Getopt 1.2 stable DB 1.7.13 stable PEAR 1.4.9 stable XML_RPC 1.5.0 stable ってでたんですが、 上のエラーはなんですか? 書いてある通り、PHPの起動時に msqlの共有ライブラリがロードできないってこと とりあえずphp.iniで該当のsoのロード部分コメントアウトしたらいいんじゃない? 175です。php.iniで該当のsoのロード部分コメントアウトしたんですが、 エラーが消えません。 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/modulename.extension' - /usr/lib/php/modules/modulename.extension: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/msql.so' - /usr/lib/php/modules/msql.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: Module 'mbstring' already loaded in Unknown on line 0 PHP Warning: Module 'mysql' already loaded in Unknown on line 0 PHP Warning: Module 'mysqli' already loaded in Unknown on line 0 Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.1 stable Console_Getopt 1.2 stable DB 1.7.13 stable PEAR 1.4.9 stable XML_RPC 1.5.0 stable php.iniはこの通りです。 なぜでしょうか? ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; ; If you wish to have an extension loaded automatically, use the following syntax: extension=modulename.extension extension=msql.so extension=mysqli.so extension=mysql.so extension=mbstring.so For example: ; 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. なぜでしょうか? コメントははずしましたが、エラーがまだでます。 180さんに言われて全部はずしてみました php.iniはこの通りです。 ;;;;;;;;;;;;;;;;;;;;; Dynamic Extensions ;;;;;;;;;;;;;;;;;;;;;; If you wish to have an extension loaded automatically, use the following syntax: extension=modulename.extension extension=mbstring.so extension=mysql.so extension=mysqli.so For example: 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. 宮..腰.佳奈死,ねよ.ロバ.面し,やがってwww. 宮..腰.佳奈死,ねよ.ロバ.面し,やがってwww. 宮..腰.佳奈死,ねよ.ロバ.面し,やがってwww. 宮..腰.佳奈死,ねよ.ロバ.面し,やがってwww. 宮..腰.佳奈死,ねよ.ロバ.面し,やがってwww. やる気あるよ。できるようにしてくれ。 どこの部分をコメントアウトしたらいいのかわからないんだ。 とりあえず、釣り乙にならないように全部消した Dynamic Extensions If you wish to have an extension loaded automatically, use the following syntax: extension=mbstring.so extension=mysql.so extension=mysqli.so extension=modulename.extension For example: 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. Note: packaged extension modules are now loaded via the .ini files found in the directory /etc/php.d; these are loaded by default. PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/modulename.extension' - /usr/lib/php/modules/modulename.extension: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: Module 'mbstring' already loaded in Unknown on line 0 PHP Warning: Module 'mysql' already loaded in Unknown on line 0 PHP Warning: Module 'mysqli' already loaded in Unknown on line 0 Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.1 stable Console_Getopt 1.2 stable DB 1.7.13 stable PEAR 1.4.9 stable XML_RPC 1.5.0 stable エラーはこんだけ。意味がわからないよ ここは無料サポートじゃありません しかるべき機関にお金を払って頼んでください ;をはずせばいいんじゃないのかな? php.iniはyumで入れたやつを使っています。 なんでこんな質問しているのおかしい? コメントアウトの意味を教えてください。 しかるべき機関って。 自宅サーバーに来てくれる人はいないよ。 違う。わかった。馬鹿だ。おれ ;をつけるんだ。 コメントアウトを間違っていた。はずかしいーーー 分かったならこれ以上無価値な内容でレスを消費しないでくれる? できました。 これでもう使えるのでしょうか? Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.3.1 stable Console_Getopt 1.2 stable DB 1.7.13 stable PEAR 1.4.9 stable XML_RPC 1.5.0 stable 次はWarningとErrorを辞書で引いてみようか すいません。質問です。 pdoとpdo_mysqlをインストールしたいと思って調べて pear install pdoではなく pecl install pdo でいれたのですが downloading PDO-1.0.3.tgz ... Starting to download PDO-1.0.3.tgz (52,613 bytes) .............done: 52,613 bytes 12 source files, building running: phpize sh: phpize: command not found ERROR: `phpize' failed というエラーがでます。 これはなんでしょうか? 教えてください。 板違いならここで聞いたほうがいいよって教えてください pdo_mysqlでは pecl install pdo_mysql downloading PDO_MYSQL-1.0.2.tgz ... Starting to download PDO_MYSQL-1.0.2.tgz (14,778 bytes) .....done: 14,778 bytes downloading PDO-1.0.3.tgz ... Starting to download PDO-1.0.3.tgz (52,613 bytes) ...done: 52,613 bytes 12 source files, building running: phpize sh: phpize: command not found ERROR: `phpize' failed 7 source files, building running: phpize sh: phpize: command not found ERROR: `phpize' failed どういう意味でしょうか? PHPのextensionとしてコンパイルするために phpizeが必要なんだけどそれがないっていうエラー phpizeは普通PHPに含まれてるから 大抵の場合パスが通ってなかったりだけだったりする (PHPのインストールの仕方にもよるけど) 自分でソースからコンパイルしてPHPをインストールしたなら そのディレクトリのbinにphpizeがあると思うのでそこのパスを通せばいい 198さんへ phpizeを入れて pecl install pdo pecl install pdo_mysql インストールできたのですが、 extension=pdo.so extension=pdo_mysql.so をコメントアウトすると pear listで エラーがでます。 ちなみにphpはyumから入れて、 php-develを入れたらphpizeが入りました。 これもしかしてもう入っていて、 別にコメントアウトする必要がないのかな? だれか教えてくれーー Net_UserAgent_Mobileに abstructなgetUniqueIdメソッド欲しいわ 質問させてください。今、Pagerを利用しようとしています。 が、手元の参考書やいろんなサイトを見ると、 echo $pager -> links(); みたいな形でページングのリンクを生成する部分の 説明しかされていません (例:http://www.phpbook.jp/pear/pear_pager/index4.html ) これはページングのリンクしか生成しないものなんでしょうか? データベースから取得したデータと、表示ページIDを組み合わせて、 コンテンツ自体を簡単に自動的に生成することは出来ないんですか? 組み合わせと生成のプログラム自体は自分で作るもの? 上記の「組み合わせ・コンテンツ生成」までフォローしてるサイトをご存知でしたら 教えてください、お願いします pear::pagerの生成リンクがどんなもんか知らんけど 開始と終了の2オフセットを出してくれるならそれをそのままsqlに渡せばいいのでは? >>205-206 ありがとうございます なんていうか、参考書とかマニュアルとかわかり辛くて参ってます リンク部分に任意のGETパラメータつける方法も良くわからないし… ページング自体は自力で作れるんですが、pearの勉強しようとしたらこの有り様で。 これじゃ本末転倒だorz もう少しマニュアル読んで頑張ります ありがとう 色々使ってきた結果、今ではPEAR自体ほとんど使ってないんだけど、その中で数少ない「使えるPEAR」の一つがPAGERだな。俺の場合はね。 PAGERか。そういうのはフレームワークに入っているから 必要ないんだよね。 ほかにPEARで使っているもの何? >>209 Cache_Liteかな。けどまあフレームワーク使うならこういうのもいらないよね。 そんなにフレームワークて便利なんだ? 勉強しようかなぁ zend使ってるの? なれれば便利。良くも悪くも、そのフレームワークの設計者の思想にあわせる必要があるからな。 そっか、、いまさらsmartyやろうと思ってたんだけど、 pearもsmartyもやる必要なくなるならやってみるよ みんな地震には気をつけてね >>212 > なれれば便利。良くも悪くも、そのフレームワークの設計者の思想にあわせる必要があるからな。 それが嫌になって結局はPEARを使ってるオレ >>213 smartyやるぐらいなら、PEAR::HTML_Template_Flexyを使ったら? >>214 PEAR::HTML_Template_Flexyなんて知りませんでした 調べたら、 「●高い安全性 デフォルト出力がhtml_specialcharsを付け加えた状態なので、 意図的に出力を変えない限りクロスサイトスクリプトなどの心配はありません。 |escapeなど不要。」 …結構よさそう それとも知らないだけでZendFWにも同じような機能があるのかな 調べてどっちか使いますね ありがとう PEARのテンプレエンジンなんて誰も使ってねーよ。 PHP・Perl各種テンプレートエンジンの処理速度比較 ttp://ryuichi.jp/computer_memo/etc/template_time_match/ テンプレートエンジンについて ttp://www.phppro.jp/qa/141 多くの場合、ある程度までデザイナがHTMLを作って、それをプログラマーにテンプレートファイルの書式に直してもらうことになるだろう。 だったら、テンプレートエンジンってあんまり意味ないね。特にPHPでは。 HTMLの中にPHPコードを挟むと書きづらく読みづらい。 プログラマーじゃないけど、PHP自体がテンプレートエンジンという認識で使ってるよ。 なんでわざわざSmartyとかPEARのテンプレートとか、余計に難しくするのかがわからん。 HTMLもPHPも全部一人でコーディングする日曜プログラマならテンプレートエンジンなんて要らないだろうな >>220 俺もPHPはテンプレートとしてサイコーって思ってるんだけど、 それはきっと一からプログラミングできる人間の言うことなんだろうな。 もう、PHP便利すぎw いったんローカルでインスコしたのを鯖にアップすればいいの? さくらインターネットのレンタルサーバ、PHP5にPEARをインストールしてみた。 サーバ上にPEARというフォルダができたんだけど、動作確認ができない。 <?php // require_once "PEAR/Info.php"; $info =& new PEAR_Info(); $info->show(); ?> をやってInfo.phpが表示されればOKらしいけど、 PEAR配下にも PEAR/PEAR配下にもInfo.phpってファイルが見つからない。 正常じゃないのかな? >>226 そうだったのですか。 知らなかった。 >>227 こちらのものですね。 よく読んでみます。 教えてくれてありがとうございました。 pear install PEAR Info-1.6.0というコマンドを入力したんですが、 No releases available for package "pear.php.net/Info" Cannot initialize 'channel://pear.php.net/Info-1.6.0', invalid or missing package file pear/PEAR is already installed and is newer than detected release version 1.7.2 Cannot initialize 'PEAR', invalid or missing package file Package "channel://pear.php.net/Info-1.6.0" is not valid Package "PEAR" is not valid install failed と出ました。 どうゆう意味ですか? × pear install PEAR Info-1.6.0 ○ pear install PEAR_Info-1.6.0 ○ pear install PEAR_Info image_graphの設定についてお聞きしたいのですが line_gridの表示時方法を エクセルで言う「項目境界で交差する」ON の状態のような表示方法は出来ないのでしょうか? 1+----- | 2+----- を 1| +----- 2| +----- 見たいに変更できないかな? pecl memcacheについて質問させて下さい。verは1.2.1です。 memcachedに格納されたデータの削除について、特定のカテゴリのデータを一斉に削除することはできませんでしょうか? cache_1 cache_2 ・・・ cache_x と言うデータを格納するとします。 これを一斉に削除するとすると、ループ文で $memcache_obj->delete('cache_1'); のようなコードを発行しないとダメでしょうか? 他カテゴリのデータも格納されているのでflushはできません。 $cache[0] = cache_1 $cache[1] = cache_2 のようにしてsetし、$memcache_obj->delete('cache'); で削除ということも考えたのですが、 配列が大きくなるに連れてget取得時のphpでのメモリ使用量が大きくなり過ぎて破綻すると思い断念しました。 例えば、「cache_」と名の付くkeyは全てmemcache側で削除してくれるようなそんな方法はないでしょうか? ttp://jp.php.net/manual/ja/ref.memcache.php とにらめっこしているのですが良い案が浮かびません。 どうかお力添え頂けませんでしょうか。 はめまして、pear初心者です。 HTML QuickFormについて質問させてください。 addElementでpasswordを使用すると、 更新した際に情報がリセットされてしまいます。 例 $form->addElement('password', 'password', 'パスワード'); textだとうまく行きます。 $form->addElement('text', 'password', 'パスワード'); ググってみたんですが、欲しい情報が見つかりませんでした。 どなたかご教授お願いします。 >>236 さん 返信ありがとうございます! そういった仕様とのことですが、 passwordの値を取得するのはどうしたら良いんでしょうか? すいません、 >>236 さんの言ってくれた"それが仕様"を考えてみたら解決しました!! setPersistantFreeze(true); ↑↑が必要だったんですね! ありがとうございました!! というかHTMLソース開けたらパスワード丸見えって嫌じゃないか? >>239 さん ご指摘受けてHTMLソース見たら丸見えでした・・・ どうしたら良いんでしょうか・・・ >>241 さん すいません、よく意味が分からないです。 値を受けないと処理が出来ないですし、 フォームがリセットされちゃって変更が出来なくなってしまいます。 どういうことなんでしょうか。 初心者でわからない事が多いのでご迷惑おかけします。 なんか入出力と処理の流れを勘違いしてるような気がする・・・ つか、なんでフォームのパスワード欄に設定した内容を 再読込した際にデータ保持して表示しなきゃならんのだ? 多分だけど、入力→確認→完了みたく確認画面を挟むような形の時に 確認画面でpasswordの入力情報が引き継げないって事なんじゃないかな >>246 んでもパスワードをわざわざ引き継がんでも 受け取った内容を*******とかにして HTMLに戻すロジック書けば良いんでないの? 内容丸見えでいいんなら、もう出来てる訳だし、 何に悩んでるのか今いちよく分からん。 そこでセッションですよ。 まぁ、確認画面で「入力へ戻る」するときにどうするとき、結局同じ問題になるけどな。 大半のサイトでは戻ってきたときとかは「再度パスワードを入力してください」になる。 PHPで定石のアルゴリズムを全般的に知りたいのですが、 PEARで美しいソースと言ったら、何でしょう? どうもPHPネイティブのライブラリで 参考になるようなライブラリソースが見つけられずにいて、困っています。 イメージとしては、Effective C++ のような方向性の知識を身に付けたいのです。 アルゴリズムなのかコーディング規約の話なのかどっちなんだ? 定石のアルゴリズムって・・・。 アルゴリズムの意味誤解してないか? とりあえずZend技術者が書いてるライブラリから一通り目を通していけば。 どれがZend技術者が書いてるライブラリなのかは分からんけど。 後ろ向きな質問でスミマセン。 WebベースでPEARをレンサバにインストールしたのですが、 PEAR自体のアンインストール方法がわからず途方に暮れてます。 とりあえずパーミッションの関係でFTPクライアントで削除はできません… orz 適当に自分がインストールしたディレクトリを削除するスクリプトを phpで書いてそれをwebからアクセスして叩いてやればいい >>258 ありがとうございます! が、しかし「適当な削除スクリプト」を書くためにPHPを勉強せねば…。 (なんでスキルないのにPEARなんて入れちまったんだ… orz) CPANモジュールと違って、PEARは単なるPHPライブラリがほとんどだから、 基本、カレントディレクトリにコピーするだけで使えるよ。 試しにエスパーしてみると、 >>257 は、PHPセーフモードで作成したんじゃね? (ディレクトリのアクセス権がApacheで作成されるから、ユーザ権限で削除できなくなる) XREA関係だったら、公式にアクセス権変えるPerlスクリプト配布してるよ。 いろいろググって http://www.t-eyes.com/php_sample_203.html にたどり着き、ちょっと修正して解決しました。 スレ汚しスミマセンでした。 >>260 エスパーありがとうございます。確かにアクセス権がApacheのものでした。 以下のコマンドでpearをインストール使用としたのですがエラーとなってしまいます。 申し訳ありませんがわかるかた教えていただけますか? C:\php>php -n -r "include 'http://go-pear.org' ;" Warning: include(): URL file-access is disabled in the server configuration in C ommand line code on line 1 Warning: include(http://go-pear.org ): failed to open stream: no suitable wrapper could be found in Command line code on line 1 Warning: include(): Failed opening 'http://go-pear.org' for inclusion (include_p ath='.;C:\php5\pear') in Command line code on line 1 環境は、 My PCのWin XP Pro SP2 PHP Ver5.2.3 ではうまくインストールできたのですが、 会社のPC Win Server 2000 PHP Ver5.2.3 では上記のようなエラーが出てしまいます。 インストールフォルダーは、 どちらもC:\php\です。 正直行き詰っていて困っています。 こちらのサイトとかも参考にしたのですがダメでした。 http://www.phppro.jp/qa/697 http://blog.livedoor.jp/snowdunker/archives/50530677.html よかったら教えていただけませんか? よろしくお願いします。 allow_url_include が Off になってるんぢゃないでしょうか? 263です 264さんありがとうございます。 確かにphp.iniを見てみると、 allow_url_include = off になってました。 今度会社のPCで allow_url_include = on にして試してみたいと思います。 ありがとうございます。 それにしても、MyPCのphp.iniでも allow_url_include = off になっていたのですが、 なぜインストールできたんでしょう・・・。 いずれにしても試してみます。 ありがとうございます。 またご報告いたします。 つか、それでインストールできるわけがない。 家PCには元々入っていたとしか思えない。 なぜなら、http://go-pear.org ドメインなんて使われてないから。 正しくは、http://pear.php.net/go-pear 266さん レスありがとうございます。 それがですね、MyPCでは、 C:\php>php -n -r "include 'http://go-pear.org' ;" でインストールできたんです。 私の持っている参考書3冊のうち2冊にこのコマンドでのインストール方法が記されていました。 もう1冊には、go-pear.batを実行するようにうに記されています。 結構他の掲示板でも、http://go-pear.org のURLではインストールなんてできないはずだと書き込みされていました。 参考書に記されているとおりにするのがいいのか・・・。 真意の程は・・・です。 ちなみにWebサーバにはどちらにもIIS5.1を使用しており、 phpモジュールはどちらもISAPIで使用しています。 ご教授していただきありがとうございます。 真意もくそも売出し中ドメインでインストールできるわけないだろ。 考えられるとしたら、MyPCにインストールしたのが、 数年前のドメイン利用されてた頃ってことだけ。 当然、ドメイン変わったんだから、それに併せて書き方変えようよ。 マニュアル人間過ぎるぞw すみません。 なんせPHP初心者なもので。 もっと勉強したいと思います。 ありがとうございます。 プログラミングの参考書なんて5%くらいにしか当てにならん Archive_ZIPでレンタルサーバー上で解凍すると できたフォルダが所有者権限になってしまうらしく 使用者の自分では一切の変更ができなくなってしまいます。 どうすればよいのでしょうか? >>272 所有者というかWebサーバの実行ユーザだろ。 そうであれば、chmod 0777 filenameしてやれば操作できると思うがどうか 返答ありがとうございます。 <?php require'Archive/Zip.php'; $zip = new Archive_Zip("tes.zip",0777); $option = array('add_path'=>'1'); $zip->extract($option); ?> こんな感じで良いのかな? 解凍されたフォルダ内のすべてのファイルがアクセス可能になるのでしょうか? >>274 早速使ってみましたが削除できませんでした。 色々試してみましたが 普通にmkdirで作成したものは問題なく消せるのに Archive_Zipで解凍してものだけが消せないみたいです。 皆、DB操作はPEAR::DBかPEAR::MDB2どっち使ってるよ >>276 こないだMDB2にシフトしたばっかりだ。 RDBMS依存のSQLをprepare→executeで実行してるから、 使い勝手はどっちも変わらないと思ってる。 >>276 CakePHPについているO/Rマッパー使ってる。 もうSQL直発行&変数への詰め替えはやろうとは思わない。 念のためにいっておくと、もちろん必要な場合はSQL直発行できる。 >>276 PDOはPECLだから最速とかどっかに書いてて、それを継承して使ってる。 HTML_QuickFormで初期値に{/***/}が設定できないけど回避する方法ある? $form->addElement('text', 'string', 'String:'); $form->setDefaults(array('string'=>'{/HOGE/}')); 現在vine + PHP5 +MySQL5.027でHPを作っているのですが, なぜかPEARのDBとMDB2のファイルを認識せず,うまく動作させることができません. pear_infoを行うとしっかりと2つとも認識されていますし,当然パスの通った場所にも置いてあります. しかしいざ実行してみるとMySQLとの接続ができずにint(1)が帰ってきてしまいます. 自分ではまったく原因がわかりませんでした. どなたかよろしくお願いします. DBとMDB2両方ためしたのですが,今手元にDBverしかないので,とりあえずこちらのソースを張ります. require_once("DB.php"); ... class SQLConnection { // インスタンス変数 private $conn; ... // コンストラクタ public function __construct($user, $pass, $host, $name) { $dsn = "mysql://$user:$pass@$host/$name"; $this->conn = DB::connect(dsn); ←ここでエラーがでて終了する ... } } こんな感じであとは$this->connを使っていろいろとやっていくつもりです. VS.PHPを使っているのですが,その際require_once("DB.php");に赤線が引っ張られているので, すでにこの時点でファイルが見つかっていないように思われます. とりあえずエラーが出る箇所のdsnに$が抜けてますね・・・すいません. 実際のソースでは$が入った状態でエラーが出ています. >>284 ブザウザ上の表示はint(1)という表示しか出ません. VS.PHPのエラーは 「呼び出し履歴のフレームシンボルは読み込まれません.ソースコードを表示できません.」 となります. その際スタックフレームがconnect() line 519 と表示された状態で泊まります. すいません. 書き忘れ. ブラウザには出力されていませんが,VS.PHPの出力には Fail to map "/usr/share/php5-pear/DB.php" to a local path Fail to map "/usr/share/php5-pear/DB.php" to a local path というエラーが表示されています. なぜか2回同じものが表示されています. VS.PHPではって、、IDE脳かおまえは 最低でも出力ダンプしてデバッグくらいはしろよ、、、 >>283 まずPEARのライブラリのパスをinclude_pathに入れろよ。 >>287 出力ダンプですが,この場合どの値をダンプすべきなのでしょうか? connect直前までは全ての値が自分の思い通りになっているのですが,connectした瞬間に落ちてしまいます. connectの中の値をダンプしようとしても,読み込めないといっている519行目というのが,connectの定義部分の最初の行なのでダンプする値が存在しないのです・・・. また519行目ということを認識しているにも関わらず,読み込めないというのも理由がわかりませんし・・・. >>288 pear_infoなどの他のPEARライブラリは使用できているため,パスは通っていると思われます. なぜかDBとMDB2だけが認識しないという状態なのです. >>289 思われる、はやめようぜ。 phpinfoでphp.iniの設定内容確認したりしてるのか? >>290 VS.PHPは普段VisualStudioでプログラミングしている身としてはすごく楽で・・・. いろいろと調べましたが,VS.PHPの挙動がいくつかおかしい部分があったりするので,それ抜きでやってみたいと思います. >>291 確かに表現があいまいでしたね. 申し訳ないです. phpinfoで確認したところinclude_pathにPEARへのパスが通っていました. そのためパスが通っていることは間違いないです. サーバ側でinclude_pathはちゃんと通ってても IDE上からはIDEの設定でinclude_pathの設定なりちゃんとしてないと requireやらincludeやらするところで当然エラーが出るんじゃないの? だからそのVS.PHPとやらがFail to mapって言ってるんじゃない? 何使って開発するかは何でもいいと思うけど IDEによる問題とサーバサイドの問題を ちゃんと切り分けて考えられないと これが解決できたとしてもまた同じような穴に嵌る罠 >>293 そのあたりは、VS.PHPのスタートページを phpinfo(); だけのファイルにすることで容易に確認できるはずなので、 それを確認した上で>>292 の発言だと信じたい訳だがwww これまでに四回ほど挑戦しているが、いずれもインストールの段階で挫折してる。 ってかインストールで手間取る以前にパッケージ自体が発見できないんだが。 go-pear.phpなんてどこ探しても無いじゃないか。 SSHで取ろうとしてもエラーしか返ってこないじゃないか。 PEARなんて存在しないだろ。でないと見つからない理由が分からん。 >>296 404になってるな。 俺も使おうと思ってるんだがすげー困ってる。 いい加減PEARはPHPに完全に同梱しろwww …って思うことがあるよ。 そうなれば最新版にアップデート出来なくても、 最低限、パッケージングされた時点での ファイルは入手できるし。 HTML_quickformのaddElementで、例えば2008/10/10とかの指定した日付をデフォルトでセットしたいんですが、 どうやっていいかわかりません。 下記のソースの'format'部分を変更したら良いのかと思ったんですが、 うまく行きませんでした。 ググってみたけど欲しい情報にたどり着けず。。 だれか教えてください!! $date_option = array( 'Y'=>$a, 'minYear' => date( 'Y' ) - 1, 'maxYear' => date( 'Y' ) + 3, 'format' => 'Y 年 m 月 d 日', 'addEmptyOption' => true, 'emptyOptionValue' => '', 'emptyOptionText' => '----' ); $form->addElement('date', 'date', '日付', $date_option); >>300 です。 すいません'Y'=>$a, は適当に$aに数字をぶち込んだ感じです。 >>300 value=>'2008/10/10'とかaddElementした後、setValueとかどう? MDB2のプリペアードステートメントでlikeって使えないん? $sql=$db->prepare(" select * from books where price like '%?%'"); $ret=$sql->execute(array('100')); SQLがselect * from books where price like \'%?%\'になっちゃって結果がarray() price=100とか1000とかのデータは入ってるのできっちりエスケープされてる 全然どうでもいいがqueryはできるのにquoteが何故か動かず解決に超苦労した。 実はXAMPPのドライバ読み込みがinclude_pathからしか読んでない&XAMPPのパスの最後に\が付いてるせいで 自力で入れたMDB2とmysqliドライバ読んでくれてなかっただけだった。 何故MDB2の現在位置からのパスを拾ってくれないんだ… $a=$this->db->prepare(" select * from books where price like ?"); $res=$a->execute('%10%'); でよかったのか。ぎゃー MailのSMTP認証を使ってメール送信しています 送信元メールとエラーメール受信先を別にしたいので、 sendメソッドの第二パラメータに'Return-Path'というキーを含めて リターンパスを指定したのですが、 届いたメールを見ると、 何故かそのリターンパスが、本文の頭にまで書かれています。 ヘッダにも、ちゃんと書かれているのですが。 ヘッダにだけ書くようにしたいのですがどうすればいいのでしょうか? http://q.hatena.ne.jp/1152592696 似たような問題見つけました これはバグですかね・・・ こんな基本的なパッケージにいまだにこんなバグがあるなんて・・・ >>307 オマイがソース読んで直してコミットしたらどうよ。 なんでinfoseekはログインできないの?? <?php require_once "HTTP/Client.php"; $URL = "https://register.www.infoseek.co.jp/Login.html "; $LOGIN_ID = 'xxxx'; $LOGIN_PW = 'xxxx'; $http = new HTTP_Client(); $params = array( 'username' => $LOGIN_ID, 'password' => $LOGIN_PW, 'plogin' => 'on', 'saveId' => 'on', ); $ret = $http->post($URL, $params); $response = $http->currentResponse(); print_r($response['body']); ?> ログインできてないHTMLが帰ってくるんだけど、どうしてですかね? setDefaultHeader追加してみました。 結果変わらず。 $http = new HTTP_Client(); $http->setDefaultHeader( array( 'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)', 'Referer' => $URL, ) ); うーむ。 ああいいんだ。 jsessionidやら何やら付いてるのはいいのか あと<input type="hidden" name="sv" value="JP">も <?php require_once "HTTP/Client.php"; $URL = "https://register.www.infoseek.co.jp/Login.html "; $LOGIN_ID = 'xxxx'; $LOGIN_PW = 'xxxx'; $http = new HTTP_Client(); $http->setDefaultHeader( array( 'User-Agent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)', 'Referer' => $URL, ) ); $params = array( 'username' => $LOGIN_ID, 'password' => $LOGIN_PW, 'plogin' => 'on', 'saveId' => 'on', 'sv' => 'JP', ); $ret = $http->post($URL, $params); $response = $http->currentResponse(); print_r($response['body']); $cookie = $http->getCookieManager(); print_r($cookie); ?> なぜ駄目なんでしょう??実行してる環境の問題?? appRedirectとかは?あとはHOSTヘッダとかって送ってるんだっけ? ともかく、一度LiveHTTPheadersとかで流れを把握すればいいんでない? いろいろ試しても駄目っぽいので HTTP/Client.phpとHTTP/Request.phpのソースを読んでみた。 デバッグ用のコード仕込んだりしてみたけど、HOSTヘッダとかも正しく送信してるみたい。 Firefox3でLiveHTTPheaders使って調べてみたけど、 PHPとの違いは Connection closeとkeep-aliveの違いみたいだったので、 setDefaultHeaderにConnection:keep-aliveセットしてみたけど、結局動作変わらず。 currentResponseでPOST後のHeader見てみたけど、どこがおかしいか不明でした。 infoseekはログイン後に <meta http-equiv="Refresh" content="1; URL=http://www.infoseek.co.jp/ "> とかやってるみたいなので、POST前にsetMaxRedirects(0)してみたけど、NGでした。 ブラウザでログインすると、ログイン後にGHG、GPPという名前のクッキーが セットされるみたいだけど、HTTP/ClientでPOSTすると、そこがセットされない。 これが問題っぽいんだけど、理由がわからずお手上げ状態です。 識者の方、何方かわかりませんでしょうか?? HTTP/Client.phpあきらめて、curlで同等の処理を作って解決しました。 原因はわかりませんでした。 しょぼーん(´・ω・`) PEAR::DB→PEAR::MDB2に移行しようとしたのですが、 MDB2インスタンス生成時に MDB2 Error: not found no RDBMS driver specified と表示されます。 FAQより、ドライバをインストールするということなのですが、 インストール(Windowsなのでダウンロード)したのですが、同じエラーで動きません。 ちなみに場所は C:\xampp\php\PEAR\MDB2\Driver\mysql.php です。 一応一番新しいのをダウンロードして更新したのですが、他に何か必要なものがあるのでしょうか? >>320 インスタンス生成のときにdsnの指定ってどうした? デバッグ環境を構築したいと思うのですが、無料だとechoで埋めるしか無いのでしょうか? Ver5.2.6です。あと、Pearもインストールしてみたのですが、64BIT環境では動作しないのでしょうか? 今日の最新版をApache共々インストールして、Pear以外の動作は行える状態です。 偉い人お願いします >>323 > デバッグ環境を構築 ググって調べれば幾らでも出来るよ。 > 64BIT環境では動作しないのでしょうか? ググって調べれば(ry next release: 2.0.0dev1 in -320 days!!, 100% complete いつになったら出るんだろう PEAR::HTML_QuickFormについての質問です。 フォームチェックをする仕組みを探してて、これを見つけたんですが、チュートリアルなどを参照してみました。 チュートリアルに従うとフォームオブジェクトを作成し、フォーム要素を設定、そのオブジェクトに対してルールを適用するみたいな感じだったんですが 例えばhtmlで書かれたformに対してこのルールを適用することなんで出来るんでしょうか? <body> <form action="/localhost/testQuickForm.php" method="get" name="frmTest" id="frmTest"> <input name="MyTextBox" type="text" value="111" /> <input name="btnClear" value="クリア" type="reset" /> <input name="btnSubmit" value="送信" type="submit" /> </form> <?php require_once "HTML/QuickForm.php"; $form = new HTML_QuickForm('frmTest', 'get'); $form->addRule('MyTextBox', '名前の入力が必要です', 'required'); $form->applyFilter('MyTextBox', 'trim'); if ($form->validate()) { // フォームの検証が成功したら、凍結する。 $form->freeze(); } $form->display(); ?> </body> </html> みたいなことってできないですかね? なんか意味わからないこと言っちゃってすみません 平たく言うとビューとロジックの分離をしたいんです。 pearのロジックは使いたいんだけどフォームの出力は本来どおりhtmlで見たいな事を実現する方法を探してます。 詳しい方ご教授ください。 はい 天麩羅揚げときます。 くだらない質問してすんまそんでした。 MDB2を使おうとしたのですが、 接続しようとすると Call to undefined method MDB2::areequals() と表示されます。 何か必要なものがあるのでしょうか? >>333 pearコマンドのとこだけ見ればわかるだろ 単純なことを伺ってすいません。 会員サイトなど、ログイン後に表示される設定変更画面(登録情報など) にある部分のフォーム内の特定のname="*" value="*"の部分を読み込んで、 それを置換して登録情報更新させるようなことはHTTP_Clientで可能でしょうか? Warning: require_once(Auth/Auth.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/html/index.php on line 9 Fatal error: require_once() [function.require]: Failed opening required 'Auth/Auth.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/index.php on line 9 上記のエラーがでたので公式ページなりグーグル先生で検索したのですが解決できずにいます。 Auth.phpが開けないというあまりに初歩的なエラーなのですが、どなたか助けてくださいです・・・ Auth.phpがinclude_pathに置かれてない >>340 この場合のinclude_pathはphp.ini(/etc/php.ini)内のinclude_pathでよろしいんでしょうか? 現在は「include_path = ".:/var/www/html/PEAR:/var/www/html/PEAR/Auth"」となっております /var/www/html/PEAR/AuthにAuth/Auth.phpがあんの? >>342 [root@localhost html]# ls /var/www/html/PEAR/ Archive Config.php MDB2.php PEAR.php System.php pearcmd.php Auth Console MIME Pager Template pearfrontendweb.php Auth.php HTML OS Pager.php data peclcmd.php Config MDB2 PEAR Structures docs tests [root@localhost html]# ls /var/www/html/PEAR/Auth/ Anonymous.php Auth.php Container Container.php Controller.php Frontend このような配置になっております。 /var/www/html/PEAR/AuthにAuth/Auth.phpないじゃん すまん、phpinfoして想定しているiniが読まれてるか、include_pathが正しく設定されているか、確認してみたら? >>345 phpinfoの結果は以下の通りでした。 Configuration File (php.ini) Path → /etc/php.ini include_path Local Value → .:/usr/share/pear:/usr/share/php Master Value → .:/usr/share/pear:/usr/share/php [root@localhost]# ls -a /usr/share/pear/ . .depdb .lock Archive PEAR XML pearcmd.php .. .depdblock .pkgxml Console PEAR.php data peclcmd.php .channels .filemap .registry OS System.php doc test php.iniのincludeは>>341 なんだけどどこから/usr/share/pearを読み込んでるんだか・・・ いや自分が書いたのが 「include_path = ".:/var/www/html/PEAR:/var/www/html/PEAR/Auth"」 で、PHPが認識してるのが 「include_path='.:/usr/share/pear:/usr/share/php'」 なんでしょ?その時点でおかしいじゃん >>347 Apacheの再起動忘れという初歩的なミスでした。 無事起動できました。 ありがとうございます。 まあ、焦るとありがちではある。 2秒待って10秒吸って落ち着いたらリブートするのだ。 客先の鯖に入ってrootで作業してるときにrm -rf /をやった俺に比べればマシ それはまた絵に描いたような・・・ そういや俺もマスタデータ潰したことがあるorz PEARライブラリのfile_archiveを使用してZIPファイルを解凍する処理で、 zipファイルの中にサブフォルダがある場合に解凍する場所にサブフォルダを作らずに 中身のファイルだけを出力することは可能でしょうか? また、zipファイルから拡張子を指定(jpgのみなど)して解凍することはできますか?? いまAuthを使ってページ内でログイン・ログアウトができ、 ログインすると隠しページが出てくるようなのをつくってるけど すごくむずかしいね。 htmlとcssしかできないひとじゃムリなのかな pearってのはphpで使うためにあるんじゃ・・・ htmlとcssしか経験が無い人がPEAR Auth使って PHPで何か作ろうとしてるんだろ それくらい読み解いてやれよ htmlとcssしかできないんだったらpearを使うなんて無理だって言ってるんだろ それくらい読み解けよ はじめまして、質問です PEAR Text_Captcha をインストールして使用したところ以下のようなエラーがでました。 ローカルでは正常に動作しています imageドライバがないと表示されていますが、調べたところフォルダにドライバはありました 他のPEARはクイックフォームなどが動いているので、パスが間違っているというわけではないようです いろいろ調べてみましたがどうにもわかりません 原因や解決方法などわかりましたらよろしくお願いします Warning: Text_CAPTCHA::include_once(Text/CAPTCHA/Driver/image.php) [text-captcha.include-once]: failed to open stream: No such file or directory in /home/***/www/install/PEAR/Text/CAPTCHA.php on line 166 Warning: Text_CAPTCHA::include_once() [function.include]: Failed opening 'Text/CAPTCHA/Driver/image.php' for inclusion (include_path='.:/home/***/www/includes:/home/***/www/install/PEAR') in /home/***/www/install/PEAR/Text/CAPTCHA.php on line 166 Fatal error: Class 'Text_CAPTCHA_Driver_image' not found in /home/***/www/install/PEAR/Text/CAPTCHA.php on line 169 >>363 それはコロンであってるみたいです あってないと、他のPEARも動かないので クイックフォーム以外にもPAGERやAUTH、DBなどを使っているのですが、このTEXT_CAPTCHA だけなぜか動きません PagerをつかったBBSを構築している初心者です。 ユーザーが入力した検索ワードを元に、ページングさせたいのですが みなさん、検索ワードはどのようにされていますか? 自分はセッションを使っているのですが、URL機能とかあるのですか? QuickFormでちょいちょいっとフォーム作ったら、シングルクォートが エスケープされないじゃん、困る。 QuickForm.phpを修正するしかないのかなぁ。 Cache Liteでオブジェクトのキャッシュってできない? $value= $cache->call($obj->method,$args); >>366 そういう用途でセッションを使うものじゃない 検索ワードならGETで渡すほうが便利だろ PHPでプログラム書くのってPEAR使うの当たり前なんですか? 別の言語引き合いに出して悪いけど、 C++におけるstdみたいな感じで。 車輪の再発明になるコードを書かないために使うんだよ >>371 必要に応じてだけど、使うと便利なときは使う。 使えて当たり前、というなら○だな。 環境:PHP5 Linux はじめまして、現在会員情報を管理するサイトを作っているのですが 個人レベルではいき詰まってしまったので、教えてください。 セキュリティなどを考慮しつつ、セッション管理をしたいのですが 自前で作った関数や処理では不安が多々あります。 そこでフレームワークをと思ったのですが、不慣れなため敷居が高く 結局、Pearがいいのでは?と検索しているうちに考えました。 Pearでのセッション管理などでお勧めの方法やサイトがあったら教えてください。 よろしくお願いします。 PEARは中途半端なので自分でちゃんと学ぶかFW使うべし メジャーどころのフレームワーク使った方が良いと思うよ はじめまして、最近はじめた者ですが、質問させていただきます require_once 'DB.php'; の行で毎回 Fatal error: Class 'PEAR_Error' not found in C:\Program Files\PHP5\PEAR\DB.php on line 946 がでてしまいます。PEARのインストールは確認できたので原因がわかりません。 その他色々調べましたが解決いたしませんので、よろしくお願いいたします require_once 'DB.php'; ↓ //require_once 'DB.php'; 379ですが解決いたしました php.iniのインクルードパス設定 include_path = ".;C\.... ↓ include_path = "C\.... に変更したところ動くようになりました。 pearで初心者向きで なんかおもしろいもの教えて。 ↓とりあえずこん中で面白そうなのを試してみたら? ttp://www.phppro.jp/school/pear/ File_Archive::extract()についての質問です。 アーカイブの読み込みをファイルパスからではなくfile_get_contents()の返り値の変数から行いたいと思っています。 readSource()あたりかと思ったんですがどうやら違うようです。 何か方法がありましたら教えてください。 readConcat()あたりも試しましたがうまくいきませんでした。 レンタルサーバでPEARを使うには、何を持っていけばいいんですか? 使いたいのはPagerです。 ここ3日ほど苦しんでます orz... 助けてください。。。 PEARのインストール時に、コマンドプロンプトで [php.mbstring.dll が見つからなかったため、このアプリケーションを解しできませんでした。] というアラートが表示され、 それをOKすると、次に、プロンプト上に PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\php\5.2.2-Win32\ext*php_exif.dll' - 指定されたモジュールが見つかりません。 in Unknown on line 0 Could not open input file: PEAR\go-pear.phar 続行するには何かキーを押してください. . . と出てしまい、先に進めません。 環境は次に書きます (続き) 環境など OS: WindowsXP home PHP のインストール先 C:\php\php\5.2.2-Win32\ php.ini での設定(一部抜粋) extension_dir = "C:\php\php-5.2.2-Win32\ext" これまでやったこと、、、 PHPの再インストール、 ini ファイルのディレクトリセパレータを \ から / に変える、 php_mbstring.dll を、いろんな場所にコピー ※C:\php に入れたら余計変な挙動になってしまいました 神様に祈る 同じことばっかり繰り返して、気が変になりそうです。 ほんとうにお願いします。 PHP のインストール先 C:\php\php\5.2.2-Win32\ php.ini での設定(一部抜粋) extension_dir = "C:\php\php-5.2.2-Win32\ext" 変な\入ってるじゃん すいません、PHPのインストール先がミスタイプでした (?) C:\php\php\5.2.2-Win32\ (○) C:\php\php-5.2.2-Win32\ 申し訳ないです。 こんにちは あるサイトでは相手の言語に合わせたレスポンスをくれます require_once( "HTTP/Client.php" ); $client = new HTTP_Client(); $client->get( "http://hoge.com "); 普通に見に行くと英語版が渡され $client->setDefaultHeader( array('User-Agent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)', 'Accept-Language' => 'ja', 'Content-Language' => 'ja' )); こうしても変わりませんでした 自分のサーバーにアクセスさせると UA PEAR HTTP_Request class ( http://pear.php.net/ )" となり、UAが変わった形跡がありません 何がおかしいのでしょうか? $context = stream_context_create(array( 'http' => array( 'method' => 'GET', 'header' => 'Accept-Language: ja' ))); $url = "http://aaaaaa "; $data = file_get_contents($url, false, $context); var_dump( $data ); これでできましたm_ _m sendmailでtoを指定せずbccに複数宛先を指定して、 それぞれ受信者のto:にはアドレスが表示されてるってできまっか? 以下でやると宛先は無表示になるけど。 $headers['From'] = $from ; $headers['Bcc'] = "aa@ddd.com, cc@jjjj.com" ; $headers['Subject'] = "本文" ; $headers['X-Mailer'] = "PHP/".phpversion() ; $param["sendmail_path"] ="/usr/sbin/sendmail"; $param["sendmail_args"] = ("-t") ; $mail = Mail::factory("mail", $param) ; $mail->send($recipients, $headers, $body) ; 結論からいえばできない。 Toヘッダもメールの一部だからな。 受信者ごとに内容が違ったらcarbon copyにならないだろう。 (Bccは消えるが、受信者ごとの内容が変わるわけではない) 1通ずつ送るしかないな。 RFCでは、toの記入が必須、とはかかれていない。 つまり、toを絶対に入れなくてはいけない、というルールは無い。 しかし、実際の運用では、toが未記入だと、 送信できないメーラーがほとんど。 しかし元質問ではToヘッダに本来の受信者アドレスを入れたいわけであって・・・ エンベローブToとメールヘッダのToは別。 MTAが使うのはエンベローブTo、メールヘッダはMUAが使う。 それぞれの受信者のToに各受信者のアドレスを表示したいなら、1通ずつそう 送ってやればいい。 PEAR::DB利用しいてオートナンバー利用時に登録した主キーを取得するのに Insert後に ・MySQL select last_insert_id() as LASTID ・PostgreSQL select LASTVAL() as LASTID ・SQLite select last_insert_rowid() as LASTID を発行して主キーを取得しているのですが もっとスマートにPEAR::DBに備わっている機能でなんとかならないのでしょうか? (一応さがしたのですが見あたりませんでした。) やはり厳しいですか。。。 宛先は空欄で運用することにします。 Image_Graphで棒グラフ使っています。 横積み型と縦積み型のグラフを合体したようなグラフを作成しようと考えております。 $Plot =& $Plotarea->addNew('bar', array($Dataset, 'stacked'));// 縦積み $Plot =& $Plotarea->addNew('bar', array($Dataset));// 横積み どうすれば再現できますでしょうか? >>410 今更PEAR:DBM2用に自前のデータベース用クラスを書き直すのも微妙ですから PHP4を考慮する必要が無くなったらPDOに移行するつもりです。 ですからとりあえずPEAR:DBを使い続けてPEAR:DBM2に移行するつもりはありません。 そもそも、DBを変更する(ことを想定する)システムってそんなにあるのか という気が。 速さ的には ネイティブ関数>PDO>PEAR:DBとかのPDOを使わない遺物達 なんだっけか。 >>415 > そもそも、DBを変更する(ことを想定する)システムってそんなにあるのか > という気が。 それには同意だが、でも便利なメソッドとかあるから、使っちゃいますけどね。 一部はMDB2に書き換えて、さすがにPEAR::DBを利用するのはもうない。 今はZF使っているのでZend_Db。 >>417 単発処理の時は気にならないが、毎分何千何万というアクセスを受けるときはどうでしょうかね? 幸か不幸かそういう開発に携わったことないからしらね。 Zend_DbはPDO経由だから、Zend_Db自身がそれほど遅いつうもんでもないんじゃね。 ZF自身が遅いだろうつーのは置いといてw いやZend_DBのソース読めば分かるけどZend_DB自身も結構遅いよ 基本はラッパーだからそんなには感じないけどね。 ソースのどのあたりが重いわけ? つーか、DBまわりって結構クエリがDB依存だから、 ラッパーってのも微妙なところがあるなw そこら辺ってみんなどうやってるん? Calendar-0.5.4.gz コレを解凍する方法を教えて、 gzipとかすると、ディレクトリじゃなくなります。 ディレクトリじゃないからだろ。 gzipってのは1つのファイルを圧縮する物だからgunzipしても1つのファイルに置き換わるだけ。 guiのでそのファイルをダブルクリックすると展開できるんですよね。 windowsのzipの様に。 Mail_Queueクラスで送信するメールにReturn-Pathを設定したいのですが 1日がんばってもうまくいってくれないので質問いたします。 次の様にコードを書いたのですが、Return-Pathにfoo@bar.jpに指定したいのですが どなたか分かる方いらっしゃらないでしょうか? $params = '-f foo@bar.jp'; $mail_opt['param']=$params; $mail_queue = new Mail_Queue($db_opt, $mail_opt); $mail_queue->put($from, $address, $headers, $body); 環境は PHP5.2、メーラーはsendmailです。 >>426 今ざっとソースとドキュメント見た限りでは Mail_Queueコントラクタの第2引数ってそういう使い方じゃなくね?ってのと、 結局Mail_Queue自体はキューの操作だけで メール送信処理自体はsend_mailプロパティに セットされてるdriver(送信用のライブラリ)に委ねていて、 デフォルトではdriverが設定されてない場合は factorySendMail()でPEARのMailクラスが自動的に設定されるっぽいので 自前でMailのインスタンス生成してそのオプションで エンベロープfrom(Return-Path)を設定して Mail_Queueのdriverとしてセットすりゃいけそうな感じはするけど ほんとにざっと見ただけなんではずしてたらすまん >>427 お知恵をありがとうございます。 結局Mail_Queueクラスの奥深くにもぐりながら試行錯誤した結果 コンストラクタの中で $mail_option[]='-ffoo@bar.jp'; としたらうまく動きました。ハードコーディングになるのですごく嫌なのですが・・・ それなら $params = '-ffoo@bar.jp'; $mail_opt[]=$params; $mail_queue = new Mail_Queue($db_opt, $mail_opt); $mail_queue->put($from, $address, $headers, $body); と変更するだけで動きそうなのですが、何故か動かなかったです。 文法的にありえない気がするのですが・・・。 今回はここで手を引かねばならないのが痛い・・・。 私がお馬鹿なのでしょうか? 失礼致しました。 初歩的なことだとおもうんですがサンプルコードの最初にかいてある require_once "HTTP/Request.php"; とかって実際にはどこにあるんでしょうか? >>430 レンタルサーバーなので私は何も置いてないんですがサンプルで大抵指定してあるこれは どっかから調達してこないといけないわけですね。 pearのサンプルを実行する前にまずマニュアルを一読することをオススメします pearの機能を入れる際にpear.php.netって出てくるけどこれはネット経由でモジュールを落として来てるってこと? ネットに繋がってない環境だと設定書き換える必要ありますか? 下記のPearを用いたものでファイルをアップロードしようとしてます。 require_once "HTTP/Request.php"; $req =& new HTTP_Request("http://192.168.24.1/uketori.php "); $req->setMethod(HTTP_REQUEST_METHOD_POST); $result = $req->addFile("upload.jpg", "/tmp/sample.jpg"); if (PEAR::isError($result)) { echo $result->getMessage(); } else { $response = $req->sendRequest(); if (PEAR::isError($response)) { echo $response->getMessage(); } else { echo $req->getResponseBody(); } } uketori.php $updir = "./upload/"; $upload = move_uploaded_file( $_FILES["name"]["tmp_name"], $updir.$_FILES["filepath"]["name"]); if($upload == true) { echo "成功"; } else { echo "失敗"; } この場合は従来formに記載していた <input type="file" name="test">という部分のtestの指定方法がおかしいのではないかと思います。 どう修正すればよいのか教えてもらえないでしょうか。 しょうもない質問だとは思いますが宜しくお願いします。 MDB2ではMySQLのユーザ変数は使えないのでしょうか。 以下ようなのSQL文 SELECT @n := COUNT(*) FROM articles を実行しようとしています。 要は、MySQLのユーザ変数を使いたいのですが、うまくいかないようです。 ↑のSQLはあくまでも例なので、これでは変数を使う意味はありませんが、 MySQLだけでランクを表示する際などには、不可欠です。 (例えば、値が前の行と同じならランクはカウントアップしない、等) 使う方法等知っている方がいたら、どうか教えてください。 データのバックアップをmove_uploaded_fileで受け取ってますが、特に送信元とかの確認はしてません。 特定のところのみから受け取ったり、データの信頼性を高めたいのですがそういった関数や方法があれば教えてください。 HTTP_Requestで下記のヘッダーを送ってみたんですが $req->addHeader("User-Agent:","hogehoge"); 特に何も表示されていません。 表示側のPHPは下記になります。 $headers = getallheaders(); while (list ($header, $valie) = each ($headers)){ echo "$header: $value <br />\n"; } しかし下記のようにするとヘッダーに出てきます。 $req->addHeader("hogehoge"); 書き方は間違っていないと思うのですがUser-Agentの中に任意の文字列を入れて 送出するが間違っているようであれば教えてください。 >>439 $valueが$valieになってる >>438 で何か情報あればだれでもいいのでお願いします。 特定のところってホストのこと?$_SERVER変数で比較すればいいのでは 別の話だけど cron のときに $_SERVER で取得できなくてハマるのは誰もが通る道 やったことないけどcronだと$_SERVERって取れないの? MDB2で、queryがエラーになった時にメモリリークするっぽいんですが、うちだけ? Windows Server 2003、XAMPP 1.7.1、Pear MDB2 2.4.1、MDB2_Driver_mysql 1.4.1 で、 -- $db =& MDB2::connect( "mysql://test:test@localhost/test" ); for ($i = 0; $i < 10000; $i++) { $db->query("XXXX"); print $i.": memory usage=".memory_get_usage()."<br>\n"; flush(); } -- こんなコードでも、どんどんメモリ使用量が増えていきます。 query だけでなく、exec でも、prepare と execute でも、エラーになるようなコードだとメモリが増える。 成功するqueryのループだと増えません。 INSERTに失敗したらUPDATEするようなコードにしたのが間違いだったかなぁ マジメに存在チェックするしかないのか… すみません すべてのPEARをインストールしたいんですが いい方法ありませんか? >>448 全部インストールするコマンドがあるんですか? >>449 pear remote-list | awk '{print $1}' | xargs -n 1 pear install >>450 うおっ!! ありがとうございます!! できました ちなみに、すべてインストールすることによる弊害ってディスク容量圧迫以外になにかありますか? セキュリティーホール対策するべきプログラムが増える ttp://pear.php.net/manual/ja/package.http.http-request.file-upload.php のコードで質問なんですが 9行目は送信元となるファイルが無かったりした場合 13行目は送信先から何らかのレスポンスを$responseに格納 15行目は13行目の$responseに何も無いとき?エラーの場合 18行目は$responseが正常な時は戻ってきたbodyを表示 という意味だとおもうのですが、4行目で指定している送信先が(受け取り側)が 無い場合はどうすればいいのでしょうか? file_get_contentsなどで事前に確認するしかないでしょうか? PEARをインストールしたんですけれど、PHPフォルダの中にDBフォルダ(その下にあるDataObjectフォルダも)が存在せず、 またcreateTables.phpも見当たらないのですが この場合どうしたらいいのですか? http://pear.php.net/packages.php こういう所からパッケージをダウンロードして自分でPHPフォルダに入れなければいけないのでしょうか? で、一応ココの(http://pear.php.net/packages.php?catpid=7&catname=Database&php=all )一番上のDBってのをダウンロードして解凍したのですが、上記のファイルが存在しません どうしたらいいのでしょうか? ↑自己解決しました DBではなく、DateObjectに入っていました 人気無いな、このスレ 俺にとっては必須のライブラリなんだけど では、何を使ってるんですか? 時代遅れの自分に教えて下さい PEAR、機能多すぎて、学習に時間かかる・・・ 基本的なものをいくつか勉強したけど、全部は無理・・・ 使いこなせない Zendなんか使ってるヤツいるのか? ってかお前らライブラリ何使ってるんだ? >>466 そんなの勉強するもんじゃないぞ。 PEARの利用法だけ習得して あとは必要なときにマニュアル見て使えればOKだ サーバーサイドで実行できるjqueryライクなphpオープンソース phpquery サーバー側でHTMLをjqueryで整形できるよ。 http://code.google.com/p/phpquery/ $doc = phpQuery::newDocumentHTML("http://www.yahoo.co.jp/ "); $html = $doc['div'] -> html(); サーバーサイド側でこんな簡単にHTMLが抜け出せる。 正規表現も使わないで済む。jqueryライクな書き方でOK pearのパッケージダウンロードして解凍するじゃん? んでその解凍されたファイルが拡張子何もついてないから 圧縮ファイルだと気づくまで半日かかったんだが死んでくれないか? >>474 普通コマンドでインストールするだろう バージョン管理どうすんの hoge.php?var1=1&var2=2 ってURLのページにPagerつけるとして、 ページャーのリンクに上のパラメータをつけるにはどうしたらいい? PEAR::Logのように、日本語版マニュアルのないものは、やっぱ皆さん英語で勉強されたのですか? あんま英語の得意ではない自分にはどうしたらいいか迷ってるのですが・・・ 「PEAR使って、こんな凄い事が出来る」って言うような作例やそういうのを紹介しているサイトってありませんか? >>471 個人で使うなら良いけど、仕事で使うならPEARのソースを解析して把握しなければ使用してはいけない って上司が言って使わせてくれないんですよ PHP自体を使うのは許されているのにね、意味不明 それを言うならPHP自体もソース見て解析しなければ使えないということにならないか と思いましてね・・・ >>486 ソースの解析はいらんだろJK PEARへのコミットの厳しさは、おそらく君の会社の100倍くらい 俺ならpearでやれることは自分で書くなって言うけどな。 う〜ん・・・ しかし、PEARっていうのも幅広いもんな DB、DB_Objectのような重要(?)なものからExcelやらダウンロード系と言った、自分には必要ないものまで 今パッとマニュアル見に行ったけれど、gtkってジャンル、見たこともなかった 俺には使う事も無さそうだけど >>485 マニュアルのサンプルだと普通過ぎない? 元々マニュアルなんて読んでいるだろうし JavaScriptでいうこういうの(http://www.chromeexperiments.com/ )を紹介しているサイトの事を言ってるんでしょ? >>495 全部使わなければならない必要性がわからない 基礎から身に付けていかないと意味がない Pager のページ指定パラメータpageの前に「/」が勝手につくのをやめたいです。方法はないでしょうか? フォームの送信値のあとにくっつくんですが、この/のせいでエラーが起きてしまいます 現状は、form.php?var1=10&var2=20/&page=2 となってしまいエラーになっています よろしくお願いします PEAR専用スレは過疎り過ぎて質問しても仕方ないよ プロキシ経由でHTTPS(SSL)通信をしたいです。 何か良い方法がありましたらご教授ください。 ちなみに、HTTP_ClientやHTTP_Requestではできないようです。 よろしくお願いします。 phpにopensslが組み込まれていればできるよ >>501 opensslは組み込まれています。 プロキシ経由で無い場合なら、SSL通信できます。 プロキシ経由だとダメなんです。 解決方法ありますか? よろしくお願いします。 >>503 回答ありがとうございます。 ブラウザでなら、プロキシ経由でSSL通信はできるので、 プロキシは対応しています。 他に原因ありますでしょうか? まず君の環境でどこが原因で止まっているのか明確にしてからにしてくれ stream_contextでproxy指定してやれば単純にfile_get_contentsするだけ でいけるはずだが。 <?php $opts = array( 'http' => array( 'proxy' => 'proxy.example.net:8080' ) ); $context = stream_context_create($opts); $result = file_get_contents('https://www.example.net', false, $context); echo $result; >>506 ご提供のコードを実行しましたが、ダメでした。 PEARのソースを眺めると、HTTP::Request.phpの705行目あたりに、 httpsで且つ_proxy_hostが設定されている場合は、 HTTPS proxies are not supported という例外(Exception)になる、とソースコードに書いてありました。 プロキシ経由のSSL通信ができる方はいらっしゃるのでしょうか? (ソース読解に自信をもてないので・・・) >>507 506はHTTP::Requestを使ってないのでその辺のソースは 関係ないだろ。 >>508 おっしゃる通りですが、506さんのコードでもNG、HTTP_ClientやHTTP_Requestを使った場合でもNGなのです。 HTTP_ClientやHTTP_Requestを使ってプロキシ経由でSSL通信ができている方、いらっしゃいますか? いらっしゃったら、情報提供いただきたいのですが・・・ よろしくお願い申し上げます。 >>507 HTTP_Request::sendRequest() のエラーが、 HTTPS proxies are not supported でした。 よろしくお願いします。 >>511 それはまさしく507でおまえが示した部分のメッセージだな。 HTTP::Requestはhttpsをサポートしてないんだろう。これを 使う方法はあきらめた方がいい。 んで、506のコードのときはそれとは別なことが起きてる筈だが そっちはどうよ? >>512 file_get_contentsを使った通信結果を報告します。 直接ネット接続の場合、 http通信は、通信可能。 https通信も、通信可能。 プロキシ経由の場合、 http通信はNG。 エラーメッセージは次の通り。 Warning: file_get_contents(http://example.com/ ): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request https通信もNG。 エラーメッセージは次の通り。 Warning: file_get_contents(https://example.com/ ): failed to open stream: 接続済みの 呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。 または接続済みのホストが応答しなかったため、確立された接続は失敗しました。 でした。 PHPのバージョンは、5.2.3 です。 何かわかりましたらご教授をお願いします。 >>PEARとか関係ねーだろ そうですね(^^; 506さんにコードを教えてもらえたので、513の結果にたどり着き、結果PEARと無関係ということが判りました。 SSLでPROXYは、PHPのバージョンいくつならOKなのでしょうか? わかる方(実動作した方)いらっしゃいますか? 煽るだけのヤツって、技術屋としてのレベルは最低だろうな。 >>516 506のコードは PHP 5.2.11-1 with Suhosin-Patch 0.9.7 (cli) (built: Sep 20 2009 12:28:20) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies with Xdebug v2.0.5, Copyright (c) 2002-2008, by Derick Rethans with Suhosin v0.9.29, Copyright (c) 2007, by SektionEins GmbH で動作確認したもの。 使用したproxyは Squid Cache: Version 2.7.STABLE7 >>521 情報ありがとうございます。 当方の動作しなかった環境は、 PHP: 5.2.3, 5.2.11, 5.3.1 の3種類 Proxy: Squid Version 2.6 STABLE6 でした。 Squidのせいかな・・・? >>522 スレ違いになってしまいましたが、途中(513)で判明したので。。。 すいません。 スレチかもしれないが、質問投下。 qmail+vpopmailを使ってメールの送受信をしているんだが、 PHPを使って受信メールの一覧を表示することってできる? もしできるなら、その方法を教えてもらえたら嬉しいんですが・・・ どこで質問すればいいのかと思って( ´・ω・) PHPの総合スレってある? やっぱ皆さんはデータベース関連ではPEAR::DBではなく、PEAR::MDB2やPDOを使っているのでしょうか? PHP5でMDB2使っちゃってるオレって・・・なんでオレPDO使ってないんだろ なんでだろうなw 案外移行するのも良いのではないだろうか。 面倒だけど 今泣きながらMDB2互換ラッパー作ってる・・・orz >>531 じゃあおれタバコでも吹かしながら>>531 が公開するの待つわ >531 じゃあおれ屁でも吹かしながら>>531 が公開するの待つわ PDOの事が書かれていますが、PDOってインピーダンスミスマッチの問題解決してるんですか? その問題が未だにある場合はまぁMDB2なんか使う理由が無いとも言い切れないような気もするのですが・・・ 後、SQLレスでない部分がPDOの欠点と言えば(まぁ個人的にはたいして、とは思うけれども)欠点かなと ちょうど良い話題が! 先月にPHP復帰した者なんですが、PEAR::DB ってなくなったんですね...? ORMはいらないのですが、今普通にMDBにかわるものって何でしょうか。 >>539 えっ? 無くなってはいないんじゃないの? 俺この間普通にインストールしたし 開発は終了しているのは知ってるとは思うけれど MDBであればPEAR自体はMDB2を推奨してるよ >>539 どもです。PEAR::DBはメンテナンスもないのですかね? MDB2が推奨ってことでMDB2にしておきます。 >SQLレスでない部分 そこはPDOの目指す方向ではないしMDB2でもおなじじゃないか PDO使っておけばよかったな、速度が全然違うじゃないか! PEAR::Auth使おうとしてたからPEARのDB使い始めたんだった PDOってPEAR::DBとかに比べてココで書かれているように、そんなに劇的に処理スピードが上がるの? 皆さんは、どんなパッケージ使ってますか? 自分はDB、DB_Object、log位しか使っていないのですが・・・ 何か使いやすくて便利な有用性のあるパッケージとかあったら教えて下さい DB_Objectって糞遅いって話じゃないか? 3つとも使ってないわ MDB2はプリペアドステートメントでqueryOneとかqueryAllとか使えなくて ExtendedしてgetOne、getAllしなきゃいけないのがよく分からない 普通は使わないのか >>549 データベース系は何使ってるの? PDO? XML_SerializerもXML_RSSもコマンドプロンプトからインストールしようとしたらベータ版だからインストールできないとかエラーが出ました PEARでXMLを扱うのにいいパッケージって何かありますでしょうか? HTTP_Requestを使用して、ログイン後情報を得るシステムを作りました。 下記サイトを参考にしました。 http://www.ironhearts.com/diary/archives/001397.html しかし、このサイトを応用して、 windows live hotmailの情報を取得したいのですが、 ログインできません。 なにかいい方法はありませんか? >>548 Mailぐらい だったけど最近はdepracture出すぐらい古いからなあ。 うごくけど 初心者がちょっとしたことをやろうとすると、候補に出てくるのがPEARだからな 今、PEAR::MDB2で書いてたのをPDOで書き直してる テンプレートエンジンは他の物を検討せずSmarty使ってるが、 プラグインとか修正子とかキャッシュのグループ化あたりができるものでかなり高速なのがあれば使いたい QuickFormのprocessメソッドって何のためにあるのかな 好きな引数渡せないよね HTTP_Requestを使用して、ログイン後情報を得るシステムを作りました。 下記サイトを参考にしました。 http://www.ironhearts.com/diary/archives/001397.html しかし、このサイトを応用して、 windows live hotmailの情報を取得したいのですが、 ログインできません。 なにかいい方法はありませんか? DBとMDB2って何が違うのでしょうか? 今はMDB2推奨らしいですが、機能的に、また速度やセキュリティ的にどう変わったのでしょうか? たまに質問があるとこうだもんな、そりゃ過疎るわ php5ならPDO使っとけ うちのじいちゃんがZendのことを"じぇんど"って呼ぶんですけど、 "ぜんど"と"じぇんど"どっちが正しいのでしょうか? php5.2.6 と centOS5.3を使っています pearのバージョンをあげたいと思い、ターミナルで(ルート権限で) pear upgrade を実行しましたが「bash: pear: command not found」といわれました コマンドを実行したディレクトリに問題があるのかと思い、pear.batの置いてあるディレクトリに移動して 再度試してみてもダメでした。 何が問題なんでしょうか? ご意見宜しくお願いします。 ストレートにいうと、ターミナルを使ってpearのバージョンアップをする方法を教えてください。 といっても、自分なりに調べて上記の結果なんですが… すみませんが宜しくお願いします ぶっちゃけ、PEARとCakeとかのフレームワークはどっちがいいの? つД`) ダレカタスケレ !! HTTP_Session2::setExpire(time() + 60 * 60); // 有効期限は 10 分 HTTP_Session2::setIdle(time() + 10 * 60); // アイドル時間は 10 分 if(HTTP_Session2::isNew()) { HTTP_Session2::start("bosukete"); //初アクセス処理 } 何回同じブラウザからアクセスしても、ぜったいにisNew()がTrueを返却して、 初アクセス処理を実行してしまうんですが。。 2度目以降なら来ないのでは・・・?(つд⊂)エーン pearって、pear2とかopenpearとかマニュアルどうなってるんだ? svn からマニュアル引いてみたら Untranslated file: ja/ の嵐.. 本なんて、いつの時代の情報だよ.. repository/pear/peardoc/trunk/ja 自体が、既に古典と化しているのに.. なにのキャッシュ? セッションプールなら使えるだろ ネットに繋がっていないサーバーにhttp_requestを入れるにはどうすればいいのでしょうか? いつもはネットに繋がっているのでpear install http_requestで入れてました。 >>576 ありがとうございます。 ダウンロードされたファイルがどこにあるのかなぜか見つけられませんが、何とかなりそうです。 ど素人なのですが質問させてください。 パッケージをインストールしようとすると、dyld: NSLinkModule() errorと出てしまい、インストールできません。調べてみたところライブラリが古いということはわかったのですが、どうすればいいのでしょうか。Mac OS X 10.4.6を使っています。 ありがとうございます。 読んでみたのですが少し載っているエラーが出ているエラーと違うみたいです。出ているエラーは dyld: NSLinkModule() error dyld: Library not loaded: /sw/lib/libiconv.2.dylib Referenced from: /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/yaz.so Reason: Incompatible library version: yaz.so requires version 6.0.0 or later, but libiconv.2.dylib provides version 5.0.0 Trace/BPT trap です。 質問します。pearのservices amazonを使っています。 これで、$amazon->ItemSearch($type, $options);の$typeをMusicにすると 検索結果が CDとDVDの両方出てきます。 CDだけを取得するにはどうしたら良いんでしょうか? ありがとうございます。 これだと思います。しかしながらサイトを見たのですが、.bashrc で exportしたらって所の意味が分からないのですが、ターミナルで~/.bashrcから下の文と~/.bash_profileから下の文を入力すればいいのでしょうか? ぐぐりました。 パスを通すというのはファイルの場所をコンピューターに教えるという事、.bashrcは手軽にパスを追加できるという事ですね。という事は今回の場合は export DYLD_LIBRARY_PATH=/Applications/MAMP/Library/lib:${DYLD_LIBRARY_PATH} をターミナルに入力すればいいのでしょうか?何度もすみません。 まぁ、こういう設定エラーは誰もが通る道 気長に解決していくしかないな 俺なんかも一つの事に3日かけた事とかもあったし その後のサーバーの設定に比べれば幼稚なもんだったなと今になって懐かしく思う PHPのPearフレームワークについて詳しい人にご質問なのですが、 SQL インジェクション対策として下手にエスケープシーケンスなんかを やる位ならPearを使用しプレースホルダー経由でDBにアクセスをする様にした方が 簡単で安全なのでしょうか? また、Pearフレームワークの驚きの機能、便利な機能等があればお教え下さい。 さくらインターネットに pear をインストールする事が出来ません。 何か参考になるサイトはありませんか? 現在このサイトを参考にしてpearをインストールしようとしています。 DBはPDO使えばいいけど、この人は他のコンポーネント使ってるからPEARが必要なんじゃないの? ただパッケージを使いたいだけなら、 他のサーバにインストールしてPEAR/以下コピペ。 pearのtext_diffってpeclのxdiffと同じように差分とパッチの適用ってできる? >>592 マニュアル嫁。パッチ適用の機能は用意されてないな。 HTTP_Requestが使いたいのですがサーバーにはインストールされていないようです。 また勝手に入れることも出来ないようなのですが、こういう場合は使用することは出来ないのでしょうか? モジュールをインストールするという方法以外で使用する方法があれば教えてください。 >>594 ローカルにPEAR環境を整えてHTTP_Requestをインストール後、 PEARディレクトリごとFTPでアップロードが正当な方法だけど、 PEARの導入方法が分からない、HTTP_Requestさえ使えればいい というなら >>595 の方法で。 依存するパッケージくらいは自分で調べてね。 PEARのインストールって・・ ダウンロードして置けばえーやん なるほど。 別環境から引っこ抜いて置いておけばいいんですね。 さすがに全部置くと多いので依存調べてその方法で試してみます。 今時PEARて。 例外処理に対応してないクズライブラリだしなぁ。 オレだったら zend fw 使っちゃうな ライブラリ的にも使えるし ZendFrameworkって必要な部分だけ切り出して使えるもの? それって邪道だったりしない? 例えば zend/http 以下を引っこ抜いてって意味だったら 試してないけどたぶん動く 多分とか言う以前に、そもそも配布元がライブラリ別でも配布してるんだが・・・ おまいら公式サイトすら調べないんだな。 HTTP/Client使ってみたんだけど、 GET /hogehoge.cgi HTTP/1.1 Host: Host: fuga.com User-Agent: xxxxx : がブラウザ上に出てきちゃいます。消す方法はないのでしょうか?? 別スレで質問したのですが反応がございませんでしたので こちらにて再び質問させて下さい。 変数の中にURLを含む文字列が含まれているとして その中の特定の文字を正規表現を使用して一発で取得したいのですが どういう正規表現を記述すれば一度に取得出来ますか? 例) ▲変数の中身 あいうえお http://hogehoge.co.jp/name=tarou&age=25&nick_name=tarou_chan かきくけこ ▲取得したい内容 name > tarou age > 25 nick_name > tarou_chan ※正規表現が苦手なのでご指導の程お願い致します。 preg_match_all('|[&\?]([^=]+)=([^&]+)|', $var, $match); >>610 規制中で書き込めませんでした。 ありがとう。 いくらがんばってもpearがphpから見れないorz…。 レンタルのvps使ってて、/usr/share/pear以下に本体があるんだけど、include_path設定してもMail.phpが見えない。 メール受信してhoge.phpにパイプするところまでは出来ていて、そこからメール送信も出来ているので、あとは受信メールの細工だけということなので、pearを使おうとしてるのだけど、 //***hoge.php************************* $flg = 0; $file = "Mail.php"; if (file_exists($file)){ require_once($file); $flg=1; } //subjectに$flgをつけてメール送信 //******************************** という簡単なメール送信プログラムで、結果はいくらやっても「0」が帰ってくる。調べに調べた結果、どうやら権限的に「/usr/share/pear」にはアクセス出来ないらしい。 ということで、ローカルコピーとやらに手を出して、/home/user/pear以下にインストールして、シェルで確認して確実にその位置にファイルがあるのにも関わらず、 //***hoge.php************************* $chkflg = 0; $file = "/home/user/pear/php/Mail.php"; //この位置に確実にある if(file_exists($file)){ require_once($file); $chkflg = 1; } //メールに$flgつけて送信 //******************************** と絶対パスでやっても「0」が帰ってくる。 他人のサーバなので、他に悪い影響与えないように気を使いながら弄くり倒してて疲れてきた…。 pearと同じことが出来るpearじゃないお手軽なものって何かありますか?メールアドレスの取得とか、本文の取得とかが出来ればいいのですが…。 >>612 「/home/user/pear」以外の、例えばそのphpスクリプトを 置いてある場所の下に、pearとか作ってそこに置く。 peclとかと違って、pearはphpで出来たモジュール群なので 自作のモジュールとかと同じ扱いで構わない。 (go.pearとかincludeのところを手作業で直す必要があったかもしれん) >>613 レスthanks。 とすると、メール送信プログラムがある「/var/qmail/mailnames/ドメイン/メールアカウント/Maildir/」の直下にPEAR以下をインストールということ? 場所的に「go-pear」は使えない(webアクセスできない)ので、試しに実験で「/vhost/ドメイン/httpdocs/PEAR」に「go-pear」を使ってインストールしたら、確かにhttpdpcs以下のファイルからは見れるようになったのですけど、 実際にpearを使うのはhttpdocs以下じゃなくて、「/var/qmail/mailnames/ドメイン/メールアカウント/Maildir/hoge.php」になります。 やるとしたらコピーコマンドで「/home/user/pear」から「/var/qmail/mailnames/ドメイン/メールアカウント/Maildir/」にコピー? Eclipse All In Package を使ってPHPでコードを書いているのですが このパッケージには予めPearライブラリは最初から使える様になっているのでしょうか? ネットにつかがってなのでinstallが出来ないのと、installのバージョンが違うのでインストールが弾かれるます。 installのバージョンを上げたり出来ない環境なのですがmailをダウンロードしてきて/var/www/html内で解凍して includeでmail.phpを指定したりしても使えますか? pearパッケージを落としてきて入れればいいのでは? mailはsmtpも必要だった気がするけど mailとsmtpで連携とれなさそうだからダウンロードしてきたものを解凍して置いてもダメな気がする。 pear自体が入ってない状態でmailだけ入れてrequireで読み込んで使っても動くんだっけ? pearというベースは必須 なはず。 自信ないけど。 間違ってたら突っ込んで これは突込みがあったから間違っていると解釈するべきなのか ベースはないとあかんよ でもベースごとコピーでもなんでもいいから突っ込めば大抵うごくよ パスとかはようわからんからgoogle先生にでも聞いとき どこかでpear installして、pearのディレクトリ事ごっそりコピーして include_pathに設定するのが一番楽 Net_GeoIP::lookupCountryCode()のドキュメントで、 http://pear.php.net/manual/ja/package.networking.net-geoip.lookupcountrycode.php geoipdb.datはどこから持ってくるのでしょうか? updateすると自動的にgeoipdb.datも更新されるのでしょうか? MAILでprotocol指定してますが、mailで使えるプロトコルの種類はどれくらいあるんでしょうか? SMTP_Authには対応していることはテストしてわかりました。 pearのサイトを見てもprotocolについては特に見当たらなかったです。 検索の仕方が悪いのかも判りませんが情報あれば教えて貰えないでしょうか。 pearのmailが便利そうなんでダウンロードしたら中に require_once 'PEAR.php'; って書いてあります。 mailは単体では使えないんでしょうか? そうなんですか。 Pearのモジュールって単体で使えるもんだと勝手に思ってました。 一緒に入れて使ってみます。 はじめまして。 質問させてください。 xmlRPCを利用してFC2ブログに投稿しているのですが、改行が無視されてしまいます。 投稿以前の自分のサーバー上ではちゃんと改行しているのですが・・・。 FC2側で投稿時の「自動改行」の設定をいじったのですができませんでした。 MTのmt_convert_breaksを一応やったのですが、やはりできませんでしたorz よろしくお願い致します。 パッケージを手動でダウンロードしたのですがエラーがでました 何かコアのライブラリがないみたいなんですがコアになるライブラリはどこのページにありますか? 手動でダウンロードしたページに必要なモジュール並んどるがな pear.php.netよくみれ PEARのServices_Amazonを使っています。 ItemSearchでどうしてもカスタマーレビュー(またはレーティング) が取得できないのですが、なにか方法はあるでしょうか? とりあえずレスポンスグループに、↓を突っ込んで すべての戻り値を確認しながらやっているのですが(涙) Large,Images,ItemAttributes,OfferSummary,Reviews unixのシステムユーザ(/etc/passwd)で認証したいんですけど authでできるんでしょうか? WindowsでPEARをインストールしたいのですが、 1. go-pear.bat がない 2. 探してきたgo-pear.phpが「「Sorry! Your PHP version is too new (5.3.6) for this go-pear」 となって動かないという問題を抱えています。 成り行きは、 PHPのWindowsバイナリを http://windows.php.net/download/ から入手 PHPUnitやPHPDocumentorを使いたいのでPEARを入れたいと思う インストールフォルダに go-pear.bat がない http://pear.php.net/go-pear のテキストをダウンロードしてきて拡張子を .batにして実行 バージョンが新しすぎるというエラー で、途方に暮れている訳ですが正しくインストールするにはどういう方法があるでしょうか? 助けてください PEARでAUTHを使おうと思いインストールしましたが Fatal error: require_once() [function.require]: Failed opening required 'Auth.php' (include_path='.:/php/includes; .:/usr/local/lib/php/PEAR') in /usr/local/apache2/htdocs/Auth_Practice.php on line 2 のように出てきて、使えません。 環境は、ubuntu9でPHP5です。 $pear list では下のように出ますのでインストールできていると思います。 Package Version State Archive_Tar 1.3.7 stable Auth 1.6.4 stable Auth_RADIUS 1.0.7 stable Auth_SASL 1.0.4 stable ... php.iniでinclude_pathを触る必要があるとも思うのですが、いい情報がありません よろしくお願いします。 自己解決しました php.iniに include_path = Authフォルダーのあるパス を入れたらできました。 ここは一ヶ月に投稿が一つですか ずいぶん過疎ってますね。 PearのMail使ってるんですが auth = false としているのにサーバーから server does not support authentication とエラーを返されます。 サーバーはローカルサーバーで認証なしでリレーするようにしてるんですが なぜにサーバーからエラーがこういうエラーが帰ってくるのか分かりません。 auth = false以外にもやらないと認証しようとしてしまうんでしょうか? PEAR::Authで困っています。Authはログインページをecho文で生成するよう にあちこちで紹介されていて、例えば、典型的な方法、 $auth_login = new Auth("DB", $params,"loginFunction");// インスタンス生成 だと、loginFunction()でecho文を使ってログインフォームを作るのですが、 こうではなく、自分でHTMLでオリジナルのログインページを作ってからAuthのphpファイルを 呼び出して操作したい場合、インスタンス生成のときにどうやってPOST されてきたユーザ名(普通だったら$POST_['username'とか])とパスワード($POST_['password'とか])を Authに突っ込めば良いのでしょうか? よろしくお願いします。 自己解決しました ここは1ヶ月に一つの書き込みですね PHPを動作させる環境を作るのがうまくいかず困っています。 osはwindows 7です。 ttp://techblog.ecstudio.jp/tech-tips/amazon-api-ranking.html のサイトを参考に、あまのランキングを取得したいと考えています。 xamppは無事インストールできました。 しかし pear install -a HTTP_Request2-alpha をプロンプトで入力すると WARNING:channel "pear.php.net"has updated its protocols,use"channel-update pear.php.net" to update とでてうまくいかないので指示通り pear channel-update pear.php.netと入力しました。 アップデートはうまくいったみたいなので また pear install -a HTTP_Request2-alpha を入力すると エラーメッセージは表示されなくなったのですが、 サイトのようにHTTP_Request2-0.5.1.tgzがダウンロードできません。 2-0.3.1.tgzはダウンロードできました。 そのため環境を構築できず困っています。 いろいろぐぐってみたのですができませんでした。 (pear upgrade PEAR installer などやっても変わらず) よろしくお願いします。 HTTP_Request2を使ってるんですが サンプルを見るとHTTP_Request2_Exceptionをキャッチして$e->getMessage()などしています この、getMessageで返されるメッセージの一覧はどこかにないですか? 探し方が悪いのかも知れないですがマニュアル見ても見つかりません どなたかご意見お願いします 自分、ZF使ってるんでPEARって殆ど使わないんですが、これは便利ですげぇってのありますか? go-pear.phpでPEARのインストールを使用とすると --------------------------------- An Exception Has Occurred Unknown location: /pear/pear-core/branches/PEAR_1_4/PEAR.php HTTP Response Status 404 Not Found --------------------------------- となります。 解決策お願いします。 >>653 これ解決した?俺も同じ症状でインストールできなくて困ってるんだが PDOのことってスレチかもしれんが頼むわ。 bindParamって何個も繰り返すのは普通なん?メソッドチェーンみたいな感じの楽なのは無いんかね? >>656 サンクス。まさに俺がやりたいことを実行してる例だと思うんだけど素人のオイラには初めてみる書き方だ。 テーブル名の後にいきなりvalueでハテナ連発って当たり前なんですかね? sssdってのがハテナを表しててその後に変数を連続して入力すると順々に代入されてく感じなんだろうか。 $stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)"); $stmt->bind_param('sssd', $code, $language, $official, $percent); >>653 私もlolipopにgo-pear.php設置してみましたが、前はできたのにできなくなっていますね Unknown location: /pear/pear-core/branches/PEAR_1_4/PEAR.php HTTP Response Status 404 Not Found この部分は116行目付近にある 'PEAR.php' => 'http://svn.php.net/viewvc/pear/pear-core/branches/PEAR_1_4/PEAR.php?view=co', この記載が影響していると思います。 このURLにアクセスすると同じメッセージが出るので よくわかりませんがもうgo-pear.phpは使えないのかもしれません。 私は半分あきらめました。逆にgo-pear.phpのようなもので何かありましたら どなたか教えてください よろしくお願いします。 >>657 SQLインジェクション対策にはプリペアドステートメントが一般的だな 最近インストールできた人いる? >>660 を試しても30%で止まる Unknown location: /pear/packages/Archive_Tar/tags/Archive_Tar-1.3.7/Archive/Tar.php 分かる人いたら頼む >>662 go-pear.phpの120行前後の 'Archive/Tar.php' の行を 'Archive/Tar.php' => 'https://raw.github.com/pear/Archive_Tar/master/Archive/Tar.php', にすれば行けた。 ダウンロード先がphp.netからgithub.comに順番に移行してるらしいよ。 >>663 インストール完了した!! 助かったよ、ほんとありがとう >>664 出来たなら良かったw でもなんで公式のをアップデートしてくれないのかな? もう半年近くこの状態だと思うけど・・・ PEARとか全く使ってないな 最初勉強したcostが無駄だったような気もする 俺ZF使ってるから 自分はcake使った事が無いから分からないけど、cakeの場合はPEARがいいのかな? 併用とか PEARのMDB2で、 つまりは for (int $i=0; $i<10; $i++) { //begin transaction $mdb2->beginTransaction(); //create PreparedStatement $sql = 'SELECT COUNT(id) from ? WHERE user = ? ORDER BY created_at DESC, id'; $types = array('text', 'text'); $sth = $mdb2->prepare($sql, $types); $values = array($tablename[$i], $user_filter[]); //do query $res = $sth->execute($values); $sth->free(); $res = $res->fetchRow(); $count = $res['count(id)']; print "table :".$count."<br />\n"; } ってな感じに、大量のテーブルに対してそれぞれ順番に同じクエリを実行していきたいんだけど、 それってどうにかして可能ですかね? 上みたいにクエリ内で from ? ってふうにテーブル名を?に置き換えるとエラー出ちゃって。 MDB2を使ってAというテーブルから取得した結果をBというテーブルにインサート仕様としているのですがうまくいきません。 取得はうまくいくのですが、Bテーブルにインサートする際にループが一回で抜けてしまい1っかいめのループの1000レコードしか登録できません。 なぜ1回目でループを抜けてしまうのか原因がわかりません。 ご教示お願いします。 以下、プログラム ※Aテーブルのレコード数30万件 // Aテーブルよりデータを取得(15万件ほど) $result = $mdb2->query('select `product_id`, `product_title` from `tmp_mst_product` group by `product_id`'); // Bテーブルにインサート $meta = array(); while ($row = $result->fetchRow()) { $meta[] = "('".$row['product_id']."','".$row['product_title']."')"; if (count($meta) == 1000) { $mdb2->exec('insert into `mst_product` (`product_id`, `product_title`) values ' . implode(',', $meta)); $meta = array(); } } だめだな。 単純に2chスレの技術レベルが落ちたのか過疎ってるのか知らないが諦めろ metaが1000個でimplodeしたら、1000個の列なデータになっちゃわない? execしようとしてるクエリーをdebugなprintして手で実行してみたら? あと、mysql_error()も活用してみんしゃい すみません質問です。 pear入れた後、pearinfo.phpに アクセスしたところ、 config画面が表示されているんですが ページ最上部に Warning: lstat() [function.lstat]: Lstat failed for /var/cache/php-pear/ 6d1f6e892384ae452db9a1bd59ee95f5rest.cacheid in /usr/share/pear/PEAR/REST.php on line 276 こんなエラーメッセージが表示されています。 解決するにはどうしたらいいのでしょうか? >>672 俺はキャッシュ関連で妙なメッセージやエラーが出た場合はとりあえず pair clear-cache することにしてるよ。そうするとたいがい正常に戻る。 根本的解決ではないのでまたなったりするんだけど キャッシュファイルのなんらかの理由でアクセス不能になったりって 多分pear側の理由であるんだよな。 >>672 もキャッシュファイルの情報が取得できないというわけだから、同じだと思う レス遅くなってすいません。 pear clear-cache でエラーが修正されました。ありがとうございました。 php初心者です。(基本MDB2しか使ってません) PEARも入れて試してるところで、セキュリティーとか移植性も利点なのですが ソース的にはphpから直接MySqlを叩くほうがシンプルかなとも思ってしまいます。 PEARを使ったら全てのDBアクセスはPEARを通すべきなのか ところどころでphp直が混じってもいいのか悩みどころです。 もう少しPEARに慣れるべきか、今回のアプリではPEARなしでも いけるのかも(ユーザーが書き込む事はないので)と思っています。 PEARをお使いの方はどうお考えでしょうか? >>675 PEARはない FW使うか、スクラッチならPDO >>676 やはりPEARはないですか、買った本に載ってたというだけなんです。 フレームワークも調べてみると習得に時間がかかりそうと書いてあるし PDOもPEARよりシンプルで速そうで良さげです。 でも結局PEARやPDOは、将来MySQL以外の使用にも対応する事が 主要なところかと思うので、初心者はカリカリと基本SQLを書いてた ほうが良いのかと思いました。もっと経験積んで選択したいところです。 >>677 PEAR使うにしてもDBの勉強しなくていいということではないからな send($address, $header, $msg); $addressが配列で仮に100件のメールアドレスを入れてる場合 存在しないアドレスが含まれていると 100件送信せずに途中で処理が止まってしまうものなのでしょうか? 存在しないアドレスだと分かるタイミングってどこか知ってるか? >>681 ありがとうございます。 そうですよね。。 そこでちょっと試してみたのですが メールアドレスの形式があきらかに間違っているアドレスが含まれてると1通も送られてこないんです。 これはsendの仕様でしょうか? >>663 でもダメでインストールができません。 Bootstrapping Installer................... Bootstrapping PEAR5.php............(remote) ok Bootstrapping PEAR.php............(remote) ok Bootstrapping Archive/Tar.php............(remote) ok Bootstrapping Console/Getopt.php............(remote) ok Extracting installer.................. Downloading package: PEAR............. Unknown or missing compression type (gz) で止まってしまいます。。何か方法はあるのでしょうか? pear.php.netの改ざん警告がgoogleで検出されてるんだがやられたのか? 【OS名】Debian 【PHPのバージョン】5.4.4 pecl_http 2.0.6 stable propro 1.0.0 stable raphf 1.0.4 stable HTTP_Requestを使おうと思ってpecl_http をインストールしたけど 実行するとエラーが出ますたすけて #!/usr/bin/php -q <? //require_once('HTTP/Request.php'); $a = new HttpRequest(); ?> $ ./a.php PHP Fatal error: Class 'HttpRequest' not found in /tmp/a.php on line 4 //require_once('HTTP/Request.php'); コメントアウトしてるじゃないか レンタルサーバにgo-pearでpearを入れました。そして一緒にインストールされたpeclを用いてブラウザ上からxdebug(2.2.5)をインストールしようとしたのですが、インストールに失敗します。 メッセージが途中で止まり、エラーなども出ていないようで、原因がわかりません。どうすればよいでしょうか。 (phpのエラーを吐くようにしても、set_magic_quotes_runtime()のDeprecatedしか出ません) サーバのOSはCentOS 5.10、phpのバージョンは 5.3.3です。 この現象はデフォルトのまま他に何もインストールしてない時も、phpunitをインストールした後も同様に発生しています(phpunitはpear.phpunit.deからインストール出来ました) 表示されたメッセージは以下のとおりです(ドメインなどはhogeに置き換えています。) ttp://www1.axfc.net/u/3279294?key=hoge pear:authを読み込んでる ページでGETパラメータを使っているところがあるんですけど http://www.example.com/example.php?id=1 認証されていない状態で直接このURLに行くと 当然ログイン画面が出るのですけど その後ログインすると GETパラメータが消えてしまいます。 認証後もGETパラメータを使うためにはどうしたらよいのでしょうか? 転職の際に必ず思い出してください。 下記の条件が全て当てはまる会社にご注意下さい。 ・IT系 in 東京 ・転職会議で2.5点 ・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される 確かにw 2年ぶりだったのか? Smartyはどうなんだろうね? Smartyはスレすらないねw >>698 Smartyは良く使ってるよ。 Smartyはもう枯れた領域に入っていて特にスレを立てるほどのこともないんじゃない。 366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE 今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、 元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。 一部で地獄を見ても。 https://twitter.com/yukihiro_matz/status/869061879389343744 367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/ 372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:??? Railsでシステム作って納品する ↓ Railsはマイナー、メジャーのアップデートが半年以内に必ずある ↓ 客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく ↓ 気づいてから1年以内に通知すれば、5年間無料保証ゲット ↓ つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな 376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS >>378 >>379>>375 客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう 営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。 こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。 これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。 保守に強い言語のみ生き残れる。 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 EK9CCPSUO8 33歳以下の奴等 マジに言うけど、35過ぎた女でプロフに歳下にしか興味ありませんとか 今まで、歳下としか付き合った事が無いとか書いてるババアは簡単にヤレるぞ! まじて。 まぁ、顔は中年の、離婚された とか40近くても未婚とか性格に難ありしかいないけどなw ババアは、ホテル代程度は出すから てめーらのプロフに、歳上に甘えてみたいとか書いてみな w read.cgi ver 07.5.0 2024/04/24 Walang Kapalit ★ | Donguri System Team 5ちゃんねる