アプリ版:「スタンプのみでお礼する」機能のリリースについて

さくらのレンタルサーバーにPEARのHTTP_Requestをインストールし、
http://pear.php.net/manual/ja/package.http.http- …
にあった、「yahoo.com の内容を取得し、それを表示する」という
以下のスクリプトを実行したのですが、何も表示されません。
test_yahoo.php
----------------------------------------------------
<?php
require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://www.yahoo.co.jp/");
if (!PEAR::isError($req->sendRequest())) {
echo $req->getResponseBody();
}
?>
----------------------------------------------------

状態は以下の通りです。
/home/user/.cshrc
set path = (~/pear/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)

/home/user/www/php.ini
include_path = ".:/php/includes:/home/user/pear/PEAR"

%pear list
Installed packages, channel pear.php.net:
=========================================
Package Version State
Archive_Tar 1.3.7 stable
Console_Getopt 1.3.0 stable
HTTP_Request 1.4.4 stable
Mail_Mime 1.8.1 stable
Net_Socket 1.0.10 stable
Net_URL 1.0.15 stable
PEAR 1.9.1 stable
Structures_Graph 1.0.4 stable
XML_Parser 1.3.4 stable
XML_Util 1.2.1 stable
%

ブラウザからhttp://user.sakura.ne.jp/
/home/user/www/test_yahoo.php(属性:755)に
アクセスしていますが、何も表示されません。


原因、または調べ方を教えてください。
よろしくお願い致します。

A 回答 (2件)

さくらインターネットの仕様は解らないのですが、



> /home/user/www/php.ini
> include_path = ".:/php/includes:/home/user/pear/PEAR"

とか

> ブラウザからhttp://user.sakura.ne.jp/
> /home/user/www/test_yahoo.php(属性:755)に
> アクセスしていますが、何も表示されません。

などの作業をされているところを見ると、CGIとして動作している?

PEARがインストールされたのは /home/user/pear/PEAR ここ?

% ls /home/user/pear/PEAR して
HTTP とか HTTP.phpは存在している?

実は /home/user/pear を php.ini に追加するんだったりして。
#PEAR は PEAR という名前のライブラリがあるので、ちょっとそんな気がしてきた。

でも、インストールがうまくいっていないと
require_once の行でエラーになるはずですので、画面かerror_log にその旨表示されるはずですね。
#エラー表示が抑制されているのかしらん?

以下のソースを試してみて、「PEARライブラリの読み込みに失敗しました」が表示された場合は、PEARがインストールされた先と include_path の参照先が一致しているか確認してみてください。


<?php
//set_include_path( get_include_path() .PATH_SEPARATOR .realpath( '../lib/PEAR' ) );
if( FALSE === @include_once('HTTP/Request.php') ) {
echo 'PEARライブラリの読み込みに失敗しました<br/>';
echo 'include_path の値を確認してください。<br/>';
echo 'display_errors も確認するとしあわせになるかも<hr/>';
phpinfo();
die;
}
else {

PEAR::setErrorHandling( PEAR_ERROR_PRINT );
$req =& new HTTP_Request("http://www.yahoo.co.jp/");
if( !PEAR::isError( $req->sendRequest() ) ) {
echo $req->getResponseBody();
}
else {
echo '<pre>';
var_dump( $req );
echo '</pre>';
}
}
    • good
    • 0
この回答へのお礼

大変遅くなりましたが、ご回答ありがとうございます。

お礼日時:2011/01/10 12:07

> if (!PEAR::isError($req->sendRequest())) {



エラーでなかったら表示するので、エラーなら

>}
>?>

何も表示しないですね。。。

とりあえず。エラーハンドリングを入れてみてはどうでしょう。

<?php
require_once "HTTP/Request.php";

PEAR::setErrorHandling( PEAR_ERROR_PRINT );

$req =& new HTTP_Request("http://www.yahoo.co.jp/");
if( !PEAR::isError( $req->sendRequest() ) ) {
echo $req->getResponseBody();
}
    • good
    • 0
この回答へのお礼

遅くなりましたが、ご回答ありがとうございます。
やってみたのですが、やはり何も表示されません。
PEARの設定がマズイのでしょうか?
試しにxamppを入れて同じスクリプトを実行したら、簡単に表示されました。。。

お礼日時:2010/12/14 01:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!