投稿者 メッセージ
<  各種配布ソフトウェア/スクリプト 質問・要望・不具合報告  ~  配布されている「外部RSSを読み込む」スクリプトでエラー
yore
投稿1時間: 火 8月 28, 2007 6:35 pm  引用



登録日: 2007年8月 27日
投稿記事: 3

外部RSSを表示させたいなと思いこちらで配布されているスクリプトを使わせていただこうと思ったのですが、実行してもエラーが出てしまいます。とりあえずスクリプトを実行させたいのですが、どうすればよいでしょうか?

もう少し詳しく説明させていただきます。
こちらで配布されている、「外部RSSを読み込み」のスクリプトをそのまま使用すると

Warning: fopen(http://www3.asahi.com/rss/index.rdf): failed to open stream: HTTP request failed!

とURLを読み込む箇所でエラーが表示されます。何かインストール、もしくは設置する必要があるのでしょうか?それともこのサンプルソースは改変する必要があるのでしょうか?
試しにこのスクリプトで使用されているURL以外のURLを用いてみても同じエラーが表示されました。現在使っているサーバーに何か問題があるのでしょうか?

今回使用したソース(phpspot -> PHPサンプル集 -> XML関連 -> 外部RSSを読み込み)
Code:
<?php

// 外部RSSを簡単に読み込んで出力するル−チン
$RSSURL = "http://www3.asahi.com/rss/index.rdf";

$buff = "";
$fp = fopen($RSSURL,"r");
while ( !feof($fp) ) {
    $buff .= fgets($fp,4096);
}
fclose($fp);

// パ−サ作成
$parser = xml_parser_create();
// パ−サオプションを指定
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
// パ−ス実行、連想配列にパ−ス結果代入
xml_parse_into_struct($parser,$buff,$values,$idx);
// パ−サ開放
xml_parser_free($parser);

// パ−スして得た連想配列をまわす
$in_item = 0;
foreach ($values as $value) {
    $tag  = $value["tag"];
    $type = $value["type"];
    $value = $value["value"];
   
    $tag = strtolower($tag);
    if ($tag == "item" && $type == "open") {
        $in_item = 1;
    } else if ($tag == "item" && $type == "close") {
        echo <<<EOM
$title<br>
$link<br>
$description<hr>
EOM;        $in_item = 0;
    }
    if ($in_item) {
        switch ($tag) {
            case "title":
                // UTF-8なドキュメントの場合ここで
                // $value = mb_convert_encoding($value, "EUC-JP", "UTF-8"); などする必要あり
                $title = $value;
                break;
            case "link":
                $link = $value;
                break;
            case "description":
                // UTF-8なドキュメントの場合ここで
                // $value = mb_convert_encoding($value, "EUC-JP", "UTF-8"); などする必要あり
                $description = $value;
                break;
        }
    }
}

?>


動作環境
Windows XP
Apache/2.0.59
PHP/4.3.2

なお、こちらで配布されているスクリプトは
Code:
33:        echo <<<EOM
37:EOM;        $in_item = 0;


とEOMの前後にスペースが入ってしまっていたので
Code:
33:echo <<<EOM
37:EOM;
38:$in_item = 0;


と書き換えました。

また、URLで指定されているファイルを任意のディレクトリに保存し、そのファイルのパスを指定するとこのスクリプトは正しく実行されました。
やはり外部ドメインのRSSのためにセキュリティ上の問題からエラーが発生しているのだと思われます。

ひょっとしてここで仰られている「外部RSS」とは「外部ドメインのRSSデータ」という意味ではないのでしょうか?それとも何か他にするべきことが抜けているためにエラーが出てしまうのでしょうか。
ご教授のほうよろしくお願いいたします。
トップに移動
ユーザー情報を表示 メッセージを送信
yore
投稿1時間: 木 8月 30, 2007 11:04 am  引用



登録日: 2007年8月 27日
投稿記事: 3

プロキシのせいってのはありますかね?
トップに移動
ユーザー情報を表示 メッセージを送信
yore
投稿1時間: 月 9月 03, 2007 12:47 pm  引用



登録日: 2007年8月 27日
投稿記事: 3

プロキシの設定をしたら解決しました。お騒がせいたしました。
トップに移動
ユーザー情報を表示 メッセージを送信
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  各種配布ソフトウェア/スクリプト 質問・要望・不具合報告

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.