
はじめまして、phpを勉強しています。
ちょっとつまづいてしました。
質問をさせて下さい。
(phpは5.25の環境になります)
$mainrss = array (
'http://www.hoge.com/?feed=rss2',
'http://www.hoge2.com/?xml',
'http://www.hoge3.com/index20.rdf'
);
$rssarray = array();
$today = date(U);
foreach ($mainrss as $url){
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "UTF-8", "auto");
(省略)
上記の
$mainrss = array (
'http://www.hoge.com/?feed=rss2',
'http://www.hoge2.com/?xml',
'http://www.hoge3.com/index20.rdf'
);
部分を
$mainrssarray = file('rss.txt'); として外部テキストファイルからデータを呼び込もうとしたのですがだめでした。
rss.txtの内容
'http://www.hoge.com/?feed=rss2',
'http://www.hoge2.com/?xml',
'http://www.hoge3.com/index20.rdf'
どのようにすれば外部のテキストファイルから呼び込んでくれるでしょうか?
初心者的な質問で大変申し訳ないんですが、アドバイスをよろしくお願い致します;;
No.3ベストアンサー
- 回答日時:
$mainrssarray = file('rss.txt');
foreach ($mainrss as $url){
って変数名違うんじゃ?
rss.txtの内容
'http://www.hoge.com/?feed=rss2',
'http://www.hoge2.com/?xml',
'http://www.hoge3.com/index20.rdf'
ってクォートとカンマはいりませんよ?
file() だと改行コードついてくるけどそれは大丈夫なんかな?
回答有難うございます!
本文では修正していない(古い方)のソースコードをコピペしてしまいました。
指摘されました通りforeach ($mainrss as $url)で記述していました。
rss.txtの内容をクォートとカンマをとってみました。
でもだめでした。
No.5
- 回答日時:
>でもだめでした。
どうだめでした?
もう1回 var_dump 結果とエラー内容を。
補足の結果を見る限りでは rss.txt の記述に
スペースが入っているとか、記号がおかしいとかそんなとこでは?
No.4
- 回答日時:
改行かな?
foreachの最初に
$url = trim($url);
を入れてみて下さい。
No.2
- 回答日時:
エラー内容から、fetchの処理にurlがちゃんと渡っているようですね。
一応、
ver_dump(file('rss.txt'));
のようにして、他のエラーになる部分をコメントアウトして実行してみて下さい。
これでテキストファイルを取得出来ているか確認できます。
ちゃんと配列で3つ取れていたら、原因は他の部分です。
クォートとカンマをつけた時・とった時と両方試しましたがエラー内容は同じでした。
$mainrssarray = var_dump(file('rss.txt'));で実行しました。
とった時のエラー内容です。
array(3) { [0]=> string(32) "http://www.hoge.com/?feed=rss2 " [1]=> string(42) "http://www.hoge2.com/?xml " [2]=> string(38) "http://www.hoge3.com/index20.rdf " }
Warning: Invalid argument supplied for foreach() in /virtual/ID/public_html/ドメイン名/aaa/index.php on line 20
20行目付近のソースになります。
foreach ($mainrssarray as $url){
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "UTF-8", "auto");
foreach ($rss->items as $item ) {
$title = $item['title'];
$title = mb_convert_encoding($title, "UTF-8", "auto");
$title = mb_strimwidth($title, 0, 50,"…",utf8);
外部でテキストを読み込まないで
$mainrss = array (
'http://www.hoge.com/?feed=rss2',
'http://www.hoge2.com/?xml',
'http://www.hoge3.com/index20.rdf'
);
で処理をするとしっかりRSSを取得して表示してくれています。
すいませんがわかることがありましたらアドバイスをよろしくお願い致します。
No.1
- 回答日時:
テキストファイルはちゃんと実行するphpと同階層にありますか?
テキストファイルの置き場所を色々変えてみて下さい。
回答有難うございます
上記のソースを書いたindex.phpと同じ階層に置いております。
index.php
|
|
|
rss.txt
それでもだめなんです。
MagpieRSSというのを使ってrssを表示させているのですが
エラー内容が
Warning: Invalid argument supplied for foreach() in /virtual/ID/public_html/ドメイン名/aaa/index.php on line 25
Warning: MagpieRSS: Failed to fetch 'http://www.hoge.com/?feed=rss2', (HTTP Error: Invalid protocol "") in /virtual/ID/public_html/ドメイン名/aaa/rss_fetch.inc on line 238
25行目(index.php)とrss_fetch.incの238行目に問題があるみたいなんです。
外部ファイルへの呼び込み方法は私が書いた方法で問題ないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP 画像ファイルの名前をそのままURLにする 3 2022/10/16 11:18
- その他(メールソフト・メールサービス) 「不在の為お荷物を配達できませんでした」のショートメール 5 2022/10/19 19:35
- WordPress(ワードプレス) WordPressの記事の途中に差し込む 1 2023/06/29 11:18
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- その他(プログラミング・Web制作) 恒久的リダイレクトについて 2 2023/07/13 15:58
- その他(IT・Webサービス) MacとWindows Google検索した時のURL表示の違いについて 1 2022/11/17 10:38
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
- 建設業・製造業 セメント会社の「SS」は何の略? 4 2022/07/25 09:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
PHPで ?seq= の後に続く数に応...
-
" "を省く方法を教えてください
-
cakephp2.6でfindを使い合計値...
-
foreachで多次元配列にしたくな...
-
String だと「 ByRef引数の型が...
-
ヒアドキュメントの中のfor文
-
C言語の配列をPush(追加)する...
-
増える数字を配列に全て格納し...
-
php4で同じ要素の数を数えてフ...
-
配列をループでたくさん宣言し...
-
CakePHPのfindの取得件数は?
-
$_SESSIONに二次元配列を使える...
-
複数選択可能なリストボックス...
-
特定の文字で分割する再帰関数
-
配列のランク付け
-
二次元文字列をポインタで操作...
-
SimpleXML関数で取得したXML要...
-
多次元連想配列のキーを変数で...
-
トークンした言葉を一個づつ配...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
POSTで受け取った値をもとにJpG...
-
cakephp2.6でfindを使い合計値...
-
しりとり 無限ループ?
-
PHPの配列の初期化について
-
日付、時間の2段階でソート
-
多次元配列のカウント+1の仕方
-
phpとmysqlで「あいまい検索」...
-
順位を付ける時のスコアの重複...
-
PHP5の外部コマンド実行で、バ...
-
再帰的な順列書き出し
-
サイト名を取得するPHP
-
listへのappendが出来ない件
-
順位をつけたいです。
-
2次元配列の値の受け渡しについ...
-
$a[0]='w';$a[1]='r';を1回で
-
PHP配列をJavaScriptに渡したい
-
mysqlにinsertするとエラーがで...
-
$xml要素を階層指定して取得し...
-
バッチでFTPコマンド
おすすめ情報