dポイントプレゼントキャンペーン実施中!

環境は
windowsxp
apache2.0.52
php4.3.9です。

http://news.goo.ne.jp/news/topics/

http://www.asahi.com/
で提供してくれているrssを自分のhpに表示したいのですが、まったくうまくいきません。

http://php.s3.to/(レッツPHP)で提供してくれているrssちぇっかーを利用してみようと思ったのですが、pearの設定や拡張モジュールの設定の仕方が悪いのか、まったく活用できません。
xmlをhtmlに表示させるコードと同じフォルダにPEAR.phpとparser.php,RSS.phpを入れてみましたがだめでした。

質問は、xmlを使用する際のPEARと必要な拡張モジュールの設定の仕方から、活用の仕方が初心者でもわかるように書かれているHPや、参考書はありませんでしょうか。
(一応、拡張モジュールについては、php.iniのなかの
mb_string.dllと、php_domxml.dllの前の;は消したのですが、まずxml自体localの環境で表示してくれません。←自分で作った簡単なxmlなら表示してくれるのですが)
また、もしよければ、上記のgooや朝日で提供してくれているrssを表示させられるコードを教えてはいただけませんでしょうか。(ヒントだけでもかまいません。)
とても長くなってしまい、また、ピントのずれたことを書いているかもしれませんが、ほとほと参っています。どうかよろしくお願いします。

A 回答 (1件)

まずは XML から



「XML First Step」
http://www18.tok2.com/home/koumori27/xml/

あたりで勉強してみてはどうですか。

PHP で RSS なら以下なんてどうでしょう?

「Do You PHP?」
http://www.pat.hi-ho.ne.jp/dimension/sample/samp …

「PHP XML RSS」などでサイト検索すれば
非常に多くのサイトが見つかりますよ。

この回答への補足

回答ありがとうございます。
上記のサイト参考にさせていただきます^^

ところで、実はあちこち探し回ってて下記のサイトを見つけて、加工することができました。
(せっかく教えていただいたのに、角が立ちそうなのですが、その後疑問が出てきたのです。後でまた、質問を設けても同じことになってしまいそうなので、長くなってしまいますが、ここでもう一度、質問させてください。)
http://works.xrea.jp/headline.php

それで、上のサイトのコードを参考にして、xmlから取り組んだデータを配列に入れなおすクラスを作ってみたのですけれども、mb_convert_encoding関数のラップ関数がうまく作動してくれません。

ちなみに全コードは下記のとおりです。
functionの中で指定すれば、うまくいくのですが、
これをvarとかで外から取り組むことにすると、まったく機能しないで文字化けしてしまいます。
ここさえできれば、このクラスでエンコードと、rssを読み込みたいサイトのurlを取り組めば、使い回しができそうなのです。
あと、いろんなサイトでつかられてるxmlのタグ名をいれて、何も格納されてない配列をとってしまうことにすれば、割合自由に活用できそうなのです。

/*使用方法
$val=new cls_rss('rssのurl','rss_fetch.incを格納している場所/例rss/rss/rss_fetch.inc');
$rss_arr=$val->rss_arr();
print_r($rss_arr);
*/
class cls_rss{
var $url,$req;
function cls_rss($url,$req){
$this->url=$url;
$this->req=$req;
}

function rss_arr(){
function _cv($str){
$str=mb_convert_encoding($str,'shift-jis←ここに格納したいのです','auto');
return $str;
}


require_once $this->req;
$rss=fetch_rss($this->url);

$title=_cv($rss->channel['title']);
$title_link=_cv($rss->channel['link']);
$rss_arr[title]=$title;
$rss_arr[title_link]=$title_link;


foreach($rss->items as $i=>$item){

$itm_title[$i]=_cv($item['title']);
$itm_url[$i]=_cv($item['link']);
$itm_des[$i]=_cv($item['description']);
$itm_pub[$i]=_cv($item['dc']['publisher']);
$itm_date[$i]=_cv($item['dc']['date']);


$itm_date[$i]=ereg_replace("[-]","/",$itm_date[$i]);
$itm_date[$i]=ereg_replace("[T]","",$itm_date[$i]);
$last=strchr($itm_date[$i],"+");
$itm_date[$i]=str_replace($last,"",$itm_date[$i]);


$rss_arr[itm_title][$i]=$itm_title[$i];
$rss_arr[itm_url][$i]=$itm_url[$i];
$rss_arr[itm_des][$i]=$itm_des[$i];
$rss_arr[itm_pub][$i]=$itm_pub[$i];
$rss_arr[itm_date][$i]=$itm_date[$i];
}
return $rss_arr;
}
}

補足日時:2004/11/22 19:35
    • good
    • 0

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