- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:xmlの表示が良くわかりません。)
XMLの表示がわかりません
このQ&Aのポイント
- XMLの表示方法や必要な拡張モジュールの設定方法について初心者向けのHPや参考書を探しています。
- また、gooや朝日で提供されているRSSを表示させるためのコードを教えていただければと思います。
- 現在の環境はWindowsXP、Apache2.0.52、PHP4.3.9ですが、うまく表示することができません。PEARや拡張モジュールの設定方法を教えていただけると助かります。
- みんなの回答 (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/sample_xml_sax_rss.shtml 「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; } }