From konno @ me-h.ne.jp Fri May 11 12:29:20 2012 From: konno @ me-h.ne.jp (sakon) Date: Thu, 10 May 2012 20:29:20 -0700 (PDT) Subject: [PHP-users 35712] =?utf-8?b?QXBhY2hlMi40IHBocC01LjMuMTDjgIBwaHAtNS4zLjEzIHBlYXI=?= =?utf-8?b?44Ko44Op44O844Gu5a++5Yem5pa55rOV44KS5pWZ44GI44Gm44GP44Gg44GV?= =?utf-8?b?44GE?= Message-ID: <33763707.post@talk.nabble.com> こんにちは今野と申します。 httpd -v Server version: Apache/2.4.2 (Unix) Server built: May 10 2012 14:26:32 php -v PHP 5.3.13 (cli) (built: May 11 2012 11:28:57) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies ソース require_once("PEAR/Info.php"); $info = new PEAR_Info(); $info->show(); エラー内容 Strict Standards: Redefining already defined constructor for class PEAR_Info in /usr/local/php-5-3-10/lib/php/PEAR/PEAR/Info.php on line 214 Deprecated: Assigning the return value of new by reference is deprecated in /usr/local/php-5-3-10/lib/php/PEAR/PEAR/Config.php on line 650 ・・・・続く apache phpともソースからコンパイルしています。 php-5.3.10も同じ結果です。 ライブラリ表示は下の方に表示されています。 apache2.2.15 php-5.3.2では同じ設定でエラーは出ていません。 よろしくお願いします。 -- View this message in context: http://old.nabble.com/Apache2.4-php-5.3.10%E3%80%80php-5.3.13-pear%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84-tp33763707p33763707.html Sent from the Php Japan - PHP-users mailing list archive at Nabble.com. From gotou1213 @ gmail.com Fri May 11 13:45:16 2012 From: gotou1213 @ gmail.com (gotou1213 @ gmail.com) Date: Fri, 11 May 2012 13:45:16 +0900 Subject: [PHP-users 35713] Re: =?iso-2022-jp?b?QXBhY2hlMi40IHBocC01LjMuMTAbJEIhIRsoQnBocC01?= =?iso-2022-jp?b?LjMuMTMgcGVhchskQiUoJWkhPCROQlA9aEp9SyEkcjY1JCgkRiQvGyhC?= =?iso-2022-jp?b?GyRCJEAkNSQkGyhC?= In-Reply-To: <33763707.post@talk.nabble.com> References: <33763707.post@talk.nabble.com> Message-ID: <4FAC995C.4080905@gmail.com> 後藤と申します。 最新版でも Strict とか Deprecated とかが出るようなので、 解決・・・と言っていいか判りませんが、下記のようにエラーを抑止すれば良いと思います。 $error_reporting = error_reporting(E_ALL & ~E_STRICT & ~E_DEPRECATED ); require_once("PEAR/Info.php"); $info = new PEAR_Info(); $info->show(); error_reporting($error_reporting); # もしくは "@" でエラーを抑止ですが個人的には "@" での抑止は好きではありません。 以上です。 From quatrecentsept @ tsunukoraf.net Fri May 11 14:48:10 2012 From: quatrecentsept @ tsunukoraf.net (Kiyotaka sumii) Date: Fri, 11 May 2012 14:48:10 +0900 Subject: [PHP-users 35714] Re: =?iso-2022-jp?b?QXBhY2hlMi40IHBocC01LjMuMTAbJEIhIRsoQnBocC01?= =?iso-2022-jp?b?LjMuMTMgcGVhchskQiUoJWkhPCROQlA9aEp9SyEkcjY1JCgkRiQvGyhC?= =?iso-2022-jp?b?GyRCJEAkNSQkGyhC?= In-Reply-To: <33763707.post@talk.nabble.com> References: <33763707.post@talk.nabble.com> Message-ID: <17015E26-FD65-4CD6-AD43-F375CFBBC8DF@tsunukoraf.net> 住井といいます。 今、直接ソースを参照できない状態なので、 確実な修正方法までは分からないのですが、 エラーメッセージを見た限りでは以下のように思います。 > Strict Standards: Redefining already defined constructor for class PEAR_Info > in /usr/local/php-5-3-10/lib/php/PEAR/PEAR/Info.php on line 214 コンストラクタが再定義されているとあるので、 この214行目でコンストラクタが2回呼び出されているのではないでしょうか? php4との互換性のためだったと思いますが、 クラス名と同じ関数の中でコンストラクタを読み込んでいることがあります。 function PEAR_info () { $this->__construct(); } こんな感じです。実際には引数が入っていると思いますが。 もし、そうだとするとこの部分を回避すれば一つ目のエラーは出なくなるのでは? > Deprecated: Assigning the return value of new by reference is deprecated in > /usr/local/php-5-3-10/lib/php/PEAR/PEAR/Config.php on line 650 > ・・・・続く こちらはクラスをnewしたときに参照渡しになっているせいでしょうか? 正確には参照渡しが基本になったので、 $foo = &new some_Class(); のように、&をつけて参照渡しを明示するとこのメッセージが出たと思います。 これは & なしにするだけで解決すると思います。 ソースで確認してみて下さい。 From tadashi @ yosimasa.com Tue May 29 16:38:06 2012 From: tadashi @ yosimasa.com (tadashi @ yosimasa.com) Date: Tue, 29 May 2012 16:38:06 +0900 Subject: [PHP-users 35715] =?iso-2022-jp?b?UEhQGyRCNTs9UTxURydEajtuODMkTiFaM1gzZCFbJHIbKEI=?= =?iso-2022-jp?b?GyRCMys7TyQ3JF4kNyQ/GyhC?= Message-ID: みなさん、こんにちは。 PHP技術者認定機構の吉政でございます。 オライリー本「はじめてのPHP5」を教科書にしている PHPの技術者認定試験を運営しています。 (全国200か所弱で1年中受験できます) お陰様で試験開始一年で500名の受験者に恵まれ、民間IT試験としては まずまずの成果となりました。受験頂いた皆様、ありがとうございました。 一方で学生の方々の受験が少ないのも分かりました。 この試験は、これからPHPの仕事を始める人やこれからもPHPの学習を 続ける人が習得度合いをチェックするためのものです。 そのような試験が、これから社会人になる学生の方々に受験いただけないのは 問題であると考え、学校法人在籍の学生を対象に受験料金を原価で申請があった 学校法人に提供することにいたしました。 学生の方々で学割を受けたい方は、お手数をおかけしますが、在籍されている 学校法人に希望をしてください。 詳細は以下をご覧ください。 http://www.phpexam.jp/summary/gakuwari/ どうぞ宜しくお願いいたします。 -- 吉政 忠志 PHP技術者認定機構 理事長 Twitter > http://twitter.com/phpexam/ From yk_mailing @ excite.co.jp Wed May 30 21:57:45 2012 From: yk_mailing @ excite.co.jp (yk_mailing @ excite.co.jp) Date: Wed, 30 May 2012 21:57:45 +0900 Subject: [PHP-users 35716] =?iso-2022-jp?b?GyRCPnBKczxoRkAkTjpdJEsbKEJ0aXRsZRskQiRIGyhCdXJs?= =?iso-2022-jp?b?GyRCJHJPIjdIJDUkOyEiNHtGQCROGyhCdGl0bGU=?= =?iso-2022-jp?b?GyRCJE4+bDlnJE89aE19JDckSiQkJEgkJCQmO3YkciQ3GyhC?= =?iso-2022-jp?b?GyRCJD8kJCROJEckOSQsGyhC?= Message-ID: <201205301257.q4UCvjXc022496@mail-web03.excite.co.jp> 質問させてください。 自分はPHPにてcURLで、 1. topページ(http://www.eslpod.com/website/show_all.php)から数十のリンク先 の記事のtitle(English Café 348)と、各記事へ飛ぶurl(http://www.eslpod.com/website/show_podcast.php?issue_id=11951688)を取得 2. パソコン内に1.で取得したtitleと同じファイル(ファイル名はEnglish Café 348.txtのようにします)があるかを確認 3. 同名のものがあればそのurlに対する処理はせず、無ければそのurlを配列に格納し、一気にforeach()などで、その先の英文を取得しテキストファイルに書き込んで保存という処理を実行 というプロセスを行いたいと考えているのですが、スクリプト記述のアイデアが浮かびません。 cURLから得たtitle情報を$titlesに、リンク先のurl情報を$urlsに入れるとします。 で、opendir()関数で指定ディレクトリ内にあるファイル名を確認する際のやり方を以下のように考えました。 $filesという配列内に.txt拡張子を省いたファイル名を格納、それをarray_diff($titles, $files)にて比較。 しかし、これだけではその後に必要とされる$urlsと関連性がありません。 なので$dataという配列内に連想配列として$data[$title] = $urlというtitle、urlを個別対応の形にして、 array_diff($data[$title], $files)としようかと考えました。 しかし、この形ではcURLの後に $doc = new DOMDocument(); @$doc->loadHTML($html); $xpath = new DOMXPath($doc); //body部から該当するtitleを取得 $extracts = $xpath->query($titles_xPath); foreach ($extracts as $value) { $result = trim($value->nodeValue); $results[] = $result; } のようなスクリプトを実行する自分のやり方ではtitleとurlを対応させられません。 ちょっと分かりにくい文章になってしまって申し訳ございませんが、どのようにすればtitleとurlを対応させながら、上記のような1〜3の処理を完了させればいいのかアドバイスを頂けないでしょうか? From kenzo.taka @ gmail.com Thu May 31 00:14:34 2012 From: kenzo.taka @ gmail.com (Kouzou Takahashi) Date: Thu, 31 May 2012 00:14:34 +0900 Subject: [PHP-users 35717] Re: =?iso-2022-jp?b?GyRCPnBKczxoRkAkTjpdJEsbKEJ0aXRsZRskQiRIGyhC?= =?iso-2022-jp?b?dXJsGyRCJHJPIjdIJDUkOyEiNHtGQCROGyhCdGl0bGU=?= =?iso-2022-jp?b?GyRCJE4+bDlnJE89aE19JDckSiQkJEgkJCQmO3YkciQ3GyhC?= =?iso-2022-jp?b?GyRCJD8kJCROJEckOSQsGyhC?= In-Reply-To: <201205301257.q4UCvjXc022496@mail-web03.excite.co.jp> References: <201205301257.q4UCvjXc022496@mail-web03.excite.co.jp> Message-ID: 高橋といいます。 if (array_search($title, $files) == NULL) ならば、テキストファイル作成して$filesを更新 if ( !(array_key_exists($title, $data))) ならば$data[$title] = $urlをセット という判定なら記載されている内容が満たせそうに思いますがいかがでしょう 2012年5月30日 21:57 : > 質問させてください。 > > 自分はPHPにてcURLで、 > > 1. topページ(http://www.eslpod.com/website/show_all.php)から数十のリンク先 > の記事のtitle(English Café 348)と、各記事へ飛ぶurl(http://www.eslpod.com/website/show_podcast.php?issue_id=11951688)を取得 > 2. パソコン内に1.で取得したtitleと同じファイル(ファイル名はEnglish Café 348.txtのようにします)があるかを確認 > 3. 同名のものがあればそのurlに対する処理はせず、無ければそのurlを配列に格納し、一気にforeach()などで、その先の英文を取得しテキストファイルに書き込んで保存という処理を実行 > > というプロセスを行いたいと考えているのですが、スクリプト記述のアイデアが浮かびません。 > > > cURLから得たtitle情報を$titlesに、リンク先のurl情報を$urlsに入れるとします。 > で、opendir()関数で指定ディレクトリ内にあるファイル名を確認する際のやり方を以下のように考えました。 > $filesという配列内に.txt拡張子を省いたファイル名を格納、それをarray_diff($titles, $files)にて比較。 > > しかし、これだけではその後に必要とされる$urlsと関連性がありません。 > なので$dataという配列内に連想配列として$data[$title] = $urlというtitle、urlを個別対応の形にして、 > array_diff($data[$title], $files)としようかと考えました。 > > しかし、この形ではcURLの後に > $doc = new DOMDocument(); > @$doc->loadHTML($html); > $xpath = new DOMXPath($doc); > //body部から該当するtitleを取得 > $extracts = $xpath->query($titles_xPath); > foreach ($extracts as $value) > { > $result = trim($value->nodeValue); > $results[] = $result; > } > のようなスクリプトを実行する自分のやり方ではtitleとurlを対応させられません。 > > ちょっと分かりにくい文章になってしまって申し訳ございませんが、どのようにすればtitleとurlを対応させながら、上記のような1〜3の処理を完了させればいいのかアドバイスを頂けないでしょうか? > _______________________________________________ > PHP-users mailing list PHP-users @ php.gr.jp > http://ml.php.gr.jp/mailman/listinfo/php-users > PHP初心者のためのページ - 質問する前にはこちらをお読みください > http://oldwww.php.gr.jp/php/novice.php3