- 締切済み
PHPで外部ファイルから取り込んだデータを配列に
外部ファイルから取り込んだデータを、配列に代入したいと考えています。自分で試したのですが、どうしてもうまくいかないので詳しい方、どうかよろしくお願いします。 外部のdatファイルは3項目をカンマ区切りで記述してあり、その3項目の繰り返しになっています。そこで次のスクリプトを実行すると、echo結果は$aの列挙になります。 <?php //ファイル名 $file_name = "ファイルのURL/××.dat"; //ファイルを読み取りモードで開く $file = fopen($file_name, "r") or die("OPENエラー"); //ファイルをロックする flock($file, LOCK_SH); //出力 while (!feof($file)){ $string = fgets($file,1000); list($a, $b, $c , $d) = explode(",", $string); $d="$a".","; echo "$d"; } //ロックを開放する flock($file, LOCK_UN); //ファイルを閉じる fclose($file); ?> じつは、この$aの内容が、RSSフィードのURLになっており、次のスクリプトでRSSの更新情報を書き出すのですが、$dの中のカンマ区切りのデータを、次のスクリプトの●●●部分に取り込みたいのですが、どう記述すればよいのかわかりません。 <?php include_once(ABSPATH . WPINC . '/feed.php'); $rss = fetch_feed(array( ●●● 'URL1', 'URL2', 'URL3' )); if (!is_wp_error( $rss ) ) : $rss->set_cache_duration(1800); $rss->init(); $maxitems = $rss->get_item_quantity(100); $rss_items = $rss->get_items(0, $maxitems); date_default_timezone_set('Asia/Tokyo'); endif; ?> <!--出力--> <ul style="height: 200px; margin: 10; padding: 0; overflow-y: scroll;"> <?php if ($maxitems == 0) echo '<li style="list-style: none;">No items.</li>>'; else foreach ( $rss_items as $item ) : ?> <li style="list-style: none; margin: 0; padding: 0;"><?php echo $item->get_date("Y-n-j"); ?> <a href='<?php echo $item->get_permalink(); ?>' target="_blank"><?php echo $item->get_title(); ?></a></li> <?php endforeach; ?> </ul> どうか、お知恵をお貸しください、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- gorogorokoro
- ベストアンサー率75% (3/4)
CSV形式なのにfgetcsv()を何故使わないの?
お礼
回答ありがとうございました。 >CSV形式なのにfgetcsv()を何故使わないの? ファイルの拡張子が.datでもcsvが使えるとは知りませんでした。 改めて質問ですが、外部ファイルは「サイト名,URL,RSS」と3つの要素をひとまとまりとしてカンマ区切りでつらつらつらなっています。 サイト名,URL,RSS,サイト名,URL,RSS,サイト名,URL,RSS・・・こんな感じです。 このうち「RSS」だけを配列に組み込みたいと思っています。 list($a, $b, $c) = explode(",", $string); でRSSを$cに代入してソレをさらに配列に組み込むのかなと考えたのですが、どうもよくわかりません。 ちなみに、下のRSSを組み込むスクリプトはワードプレスのサポートサイトで公開されていたもので、配列にそのままRSSフィードのURLを打ち込めば動作するのは確認できているのですが、手入力とファイルから取り込んだ変数を混在させたいと考えています。 どうかよろしくお願いします。