http://works.xrea.jp/headline.php
上記サイトにてPHPを利用したRSSの取得と解析に挑戦しています。
PHPについては全くの素人です。
説明どおりにやってもうまくいきません。ブラウザで見ると下記のように表示されます。
channel['title'];
$title = mb_convert_encoding($title, "EUC-JP", "auto");
echo "<h4>$title</h4>?n";
echo "<ul>?n";
foreach ($rss->items as $item ) {
$title = $item[title];
$title = mb_convert_encoding($title, "EUC-JP", "auto");
$url = $item[link];
echo "<li><a href=?"$url?">$title</a></li>?n";
}
echo "</ul>?n";
?>
そもそもPHPはhtmlに埋め込んで使えるのでしょうか?
htmlはDOCTYPE宣言からはじまるxthmlです。
サーバーはPHPが使えるものです。
教えてください。よろしくお願いします。
No.1
- 回答日時:
magpierss-0.5.2.tar.gz はダウンロードしましたか?
アップロードしましたか?
全引用
http://works.xrea.jp/headline.php
---------------------------------------------------------------
RSSヘッドライン
MagpieRSSの紹介 -PHPで作成するヘッドライン-
PHPでリモートのRSS(RDF)を取得、解析、そしてキャッシュまで可能なスクリプト RSS0.9とRSS1.0に対応。 当サイトのトップページで表示させているものです
入手先 : http://magpierss.sourceforge.net/
例えば、index.phpにスラッシュドット・ジャパンのヘッドラインを埋め込むとします。
上記URLにてMagpieRSS (magpierss-0.5.2.tar.gz) を入手。
magpierss-0.5.2.tar.gz を解凍
拡張子が .inc のファイルとextlibフォルダをindex.phpと同じディレクトリにアップロード
index.phpと同じディレクトリにcacheという名前のディレクトリを作る
index.phpの中のヘッドラインを埋め込みたい位置に以下のコードを挿入
<?php
require_once 'rss_fetch.inc';
$url = 'http://slashdot.jp/slashdot.rdf';
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "EUC-JP", "auto");
echo "<h4>$title</h4>\n";
echo "<ul>\n";
foreach ($rss->items as $item ) {
$title = $item[title];
$title = mb_convert_encoding($title, "EUC-JP", "auto");
$url = $item[link];
echo "<li><a href=\"$url\">$title</a></li>\n";
}
echo "</ul>\n";
?>
$url = 'http://slashdot.jp/slashdot.rdf';
この行は取得するRSSファイルのURLを指定しています。
$title = mb_convert_encoding($title, "EUC-JP", "auto");
この行は日本語文字コードを変換している部分です。 "EUC-JP" の部分はindex.phpの出力文字コードにあわせて SJIS, EUC-JP, JIS, UTF-8 の中から指定します。
mb_convert_encodingが使えないサーバーの場合はjcode.phpsを使います。
配布元 : http://www.spencernetwork.org/jcode/
ヘッドラインの表示数を指定したい場合は、array_sliceを使ってみてください
例) : 10個の場合
$rss->items = array_slice($rss->items, 0, 10);
foreach ($rss->items as $item )
ありがとうございます。
magpierss-0.5.2.tar.gzはインストールしました。
一応ご紹介いただいたサイトを見ながら作業したので手順は間違っていないと思います。
No.2
- 回答日時:
見たところ、<?php が有効になってないようです。
(すべてHTMLとみなしているようです)このphpファイルの拡張子は xxx.php (あるいは xxx.cgi)等となっているでしょうか?
>そもそもPHPはhtmlに埋め込んで使えるのでしょうか?
いいえ。htmlがphpに埋め込んで使えるのであって、phpをhtmlに埋め込んでは使えません。
例)
aaa.php というファイル名
-------------------------
<html> ---- ここから HTML
<head><title>aaa</title></head>
<body> ---- ここまで HTML
<?php ---- ここから php
echo 'hello<br>';
echo '</body>';
echo '</html>';
?> ---- ここまで php
-------------------------
ありがとうございます。
いただいた例はページ全体がphpで生成される感じですか?
1ページのうち一部分だけにphpを使いたいのですが…
No.3
- 回答日時:
ANo2です。
>いただいた例はページ全体がphpで生成される感じですか?
>1ページのうち一部分だけにphpを使いたいのですが…
phpを使用するには、ファイルの拡張子を xxx.php (あるいはxxx.cgi)等
としなければ使用できません。
ですので、ファイルの拡張子が xxxx.html では不可です。
(ファイルの拡張子によって apache が、これはHTMLなのかphpなのかを
判断します)
ですので、拡張子をxxx.phpとすれば、「一部分だけにphp」の構文を
コーディングしてもOKです。
度々ありがとうございます。
今教えていただいたとおりにしたみたら、
Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in…
と出ました。『,』か『;』が足りなってことですか?
index.php内に使用したphpは
<?php
require_once 'rss_fetch.inc';
$url = 'http://slashdot.jp/slashdot.rdf';
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "EUC-JP", "auto");
echo "<h4>$title</h4>?n";
echo "<ul>?n";
foreach ($rss->items as $item ) {
$title = $item[title];
$title = mb_convert_encoding($title, "EUC-JP", "auto");
$url = $item[link];
echo "<li><a href=?"$url?">$title</a></li>?n";
}
echo "</ul>?n";
?>
です。http://works.xrea.jp/headline.phpでコピーしたものなんですがどこが足りないのでしょうか。
No.4
- 回答日時:
>Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in…
>と出ました。『,』か『;』が足りなってことですか?
この場合は in ... の後に記述されている場所で、構文のエラーが発生しているという事です。「『,』か『;』が足りない・・・」という事が原因の場合もあります。
この場合は、ちょっとソースを見ると、
$title = $item[title]; ・・・・ $title = $item['title'];
$url = $item[link]; ・・・・・ $url = $item['link'];
では無いでしょうか?
(合っているかは解りませんが・・・)
>$title = $item[title]; ・・・・ $title = $item['title'];
>$url = $item[link]; ・・・・・ $url = $item['link'];
と修正してみました。
ブラウザではまた同じようなエラーがでました。
in以後にxxxxxx.php on line 110と書いてあります。
phpファイルの110行目は
echo "<li><a href=?"$url?">$title</a></li>?n";
です。この行に構文のエラーがあるのでしょうか?
何度も何度もすみません
No.5ベストアンサー
- 回答日時:
> phpファイルの110行目は
> echo "<li><a href=?"$url?">$title</a></li>?n";
投稿時か何かの都合で ?" 等になっているのかと思いましたが、そうでなければ、ここも違っています。
?" のところは全て \" です。
また、構文エラーは出ないかと思いますが、?n のところも全て \n のハズ
です。(他の行も含めて全てです)
<?php と ?> の所はそのままでOKです
また、phpに関しては、以下のユーザーマニュアルを参照してみてはいかがでしょうか。
参考URL:http://www.php.net/manual/ja/
ありがとうございます。
そう言われて気づきましたが、?"は投稿時の都合のようです。
手元のデータは全て?"となっています。
教えていただいたサイトを見て勉強してみます。
また何か気づいた事がありましたらお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化けについて
-
phpでfopen()やfputs()が使えない
-
日付と年月日を選択するコード...
-
onedrive にexcelファイルをア...
-
VBSの「MsgBox」について
-
こちらはただの直列処理ですか?
-
複数ファイルを連続でダウンロード
-
パースエラーとは?
-
リンク先を隠す方法はないでし...
-
拡張子php画像をjpg画像等に変...
-
図に示す階層構造で,現在のデ...
-
C# Excelファイルへの画像挿入。
-
PHPとCSVで簡易データベースな...
-
Subversionで、ファイルをリネ...
-
ワードプレス、Contact Form 7...
-
include先でのinclude元の変数...
-
PHPのif文でその処理を途中で抜...
-
PHPでネットワークドライブのop...
-
FTPコマンドでディレクトリごと...
-
xamppのDocumentRootでindex,ht...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのエラーについて(デバッグ)
-
php ログイン
-
文字化けについて
-
日付と年月日を選択するコード...
-
PHP postgreSQL(teraterm)を用...
-
前後の全角スペースを削除する...
-
ここでの ②if($su_d<>"")の比較...
-
複数の文字列をファイルに書き...
-
PHP(smarty)についての質問(文...
-
phpの画面表示が真っ白です
-
機種依存文字の文字化けについて
-
ローカル環境で動くのに本番環...
-
XAMPP1.7.1上でPHPを実行すると...
-
文字コードの出力を変更したい
-
XMLパースエラー回避方法
-
どうしたら確認ができますか!?
-
phpでfopen()やfputs()が使えない
-
pdf表示
-
ファイルをアップロードすると...
-
zampp PHPでPOSTの変数が返っ...
おすすめ情報