• 締切済み

Parse error: parse error, unexpected $ エラーについて

MagpieRSS-0.72を利用して、RSSをサイトに反映させるように苦戦しています。。 HTML内でRSS.PHPをインクルードさせると、以下のようなエラーがでて困っています。。 Parse error: parse error, unexpected $ in /var/www/vhosts/*********.com/httpdocs/rss/rss.php on line 21 RSS.PHPファイルの内容 <?php require_once 'rss_fetch.inc’; // ここから MagpieRSS 0.61 を入手→ http://magpierss.sourceforge.net/ $men = array ("http://japan.****.com/rss/index.rdf", "http://www.******.com/stafflog/atom.xml"); foreach ($men as $pre) { $url = $pre; $rss = fetch_rss($url); $title = $rss->channel[title]; $title = mb_convert_encoding($title, "shift_jis", "auto"); $url = $rss->channel[link]; echo "<div class=\"RSSsite\"><p class=\"tdbg\"><a href=\"$url\" target=\"_blank\">$title</a></p></div>\n"; $rss->items = array_slice($rss->items, 0, 5); // 表示件数を5にしている foreach ($rss->items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "shift_jis", "auto"); // 文字コードは適時変更 $url = $item[link]; echo "<div class=\"RSSline\"><li><a href=\"$url\" target=\"_blank\">$title</a></li></div>\n"; $description = $item[description]; //タイトルだけなら下の行とも削除 $description = mb_convert_encoding($description, "shift_jis", "auto"); // 文字コードは適時変更 echo "<p class=\"spc\">$description</p>\n"; } ?> 以下のサイトを参考にして作りました。 http://muto.wordpress.com/2006/06/28/%e8%a4%87%e6%95%b0%e3%81%ae%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%95%e3%81%9b%e3%82%8bphp/

  • PHP
  • 回答数3
  • ありがとう数2

みんなの回答

  • gogo-tea
  • ベストアンサー率75% (25/33)
回答No.3

Notice: Undefined index: hoge これはhogeという変数が定義されないまま使われていますよという意味だと思うのですが通常、エラーレベルでNoticeは出力する必要はないと思います。 私はphp.iniでerror_reportingの部分を error_reporting = E_ALL & ~E_NOTICE と書いています。 試してはいないですが、 .htaccessを置いて php_value error_reporting 6135 と記述するか、 phpファイルのコードの先頭に error_reporting(E_ALL & ~E_NOTICE); と書いてもNoticeを出力しないようにできるようです。

参考URL:
http://q.hatena.ne.jp/1174287500
KENTchan
質問者

補足

何度もありがとうございます。 少々多忙のため、まだためせていません。 まずはお礼まで、、。 試してみたら、報告いたします。

  • gogo-tea
  • ベストアンサー率75% (25/33)
回答No.2

{が2つに対して}が1つしか見つからないんですが。

KENTchan
質問者

補足

早速ありがとうございます。 PHPは、全くの初心者なのですが、以下のように修正してみました。 <?php require_once 'rss_fetch.inc'; // ここから MagpieRSS 0.61 を入手→ http://magpierss.sourceforge.net/ $men = array ("http://japan.*****.com/rss/index.rdf", "http://www.*****.com/stafflog/atom.xml"); foreach ($men as $pre) { } $url = $pre; $rss = fetch_rss($url); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "sjis", "auto"); $url = $rss->channel['link']; echo "<div class=\"RSSsite\"><p class=\"tdbg\"><a href=\"$url\" target=\"_blank\">$title</a></p></div>\n"; $rss->items = array_slice($rss->items, 0, 5); // 表示件数を5にしている foreach ($rss->items as $item ) { $title = $item['title']; $title = mb_convert_encoding($title, "sjis", "auto"); // 文字コードは適時変更 $url = $item['link']; echo "<div class=\"RSSline\"><li><a href=\"$url\" target=\"_blank\">$title</a></li></div>\n"; $description = $item['description']; //タイトルだけなら下の行とも削除 $description = mb_convert_encoding($description, "sjis", "auto"); // 文字コードは適時変更 echo "<p class=\"spc\">$description</p>\n"; } ?> ところ、以下のようなCautionです。 文字化け?????は、Magpieのバージョンの問題だと思うのですが、、、 Notice: Undefined index: version in /var/www/vhosts/*****.com/httpdocs/rss/rss_parse.inc on line 173 ?????????????????? ?????? Notice: Undefined index: description in /var/www/vhosts/*****.com/httpdocs/rss/rss.php on line 18 ???????? Notice: Undefined index: description in /var/www/vhosts/*****.com/httpdocs/rss/rss.php on line 18

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

<?php require_once 'rss_fetch.inc’<-これが全角になっています unexpected $end は プログラムの途中で(今回は引用符が閉じられないまま)終わりが来ましたというエラーですね

KENTchan
質問者

補足

php504さん 早速のご回答ありがとうございました。 シングルクォーテーションを半角に修正いたしました。 が、同じエラーが発生いたします。

関連するQ&A

  • PHPパーサー MagpieRSSについて

    PHPパーサーのMagpieRSSを使用しています。 読み込むxmlが更新されてもそれが反映されません。 また、htmlとして書き出す際に<p>タグにid名を付けたいのですが、idをつけるとエラーがでます。これはPHPでは文法的にまずいんでしょうか?下記が使用しているソースです。 重ねて質問なんですが、下記のソースでは1つのxmlしか読み込んでいませんが、複数のxmlを読み込むにはどうしたらいいのでしょうか。 よろしくお願いします。 <?php require_once 'rss_fetch.inc'; require_once 'rss_utils.inc'; $url = 'http://www.xxxxx/xxxxxx/index.xml'; $rss = fetch_rss($url); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "UTF-8", "auto"); $rss->items = array_slice($rss->items, 0, 1); foreach ($rss->items as $item ) { $description = $item[description]; $description = mb_convert_encoding($description, "UTF-8", "auto"); $url = $item[link]; $date = date("Y.m.d", $item['date_timestamp']); echo "$description?n"; } ?>

    • ベストアンサー
    • PHP
  • MagpieRSSを使用して自分のHPにxmlを表示させる方法

    お世話になります。 データベースよりxmlを生成し、自分のHPに1ページに埋め込みたいと思っています。 いろいろなサイトを参考に、MagpieRSSを使用して表示させたいのですが、コードのサンプルに記載されている他サイトのRSS・xmlは表示できるのですが、ローカルのxmlは下記のエラーが出てしまい表示できません。 Warning: MagpieRSS: Failed to parse RSS file. (not well-formed (invalid token) at line 9, column 21) in /aaa/rss/rss_fetch.inc on line 238 変更した部分は、表示するxmlのURLのみです。 使用しているphpのバージョンは4.34、MagpieRSSのバージョンは0.72です。 問題のrss.phpのソース↓ <?php require_once 'rss_fetch.inc'; define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); $url = 'http://www.aaa.com/rss.xml'; $rss = fetch_rss($url); if ($rss && !$rss->ERROR) { drawRSS($rss); }else{ echo "取得できませんでした。"; } function drawRSS($rss){ $items = array_slice($rss->items, 0, 10); echo "<ul>\n"; foreach ($items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "UTF-8", "auto"); $url = $item[link]; $description = $item[description]; $description = mb_convert_encoding($description, "UTF-8", "auto"); echo "<li><a href=\"$url\">$title</a></li>\n$description"; } echo "</ul>\n"; } ?> 何か、対処方法をご存知の方教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • XML
  • RSSを取得したいのですが

    下記サイトを参考に、以下のコードを埋め込んだのですが、 http://plaza.rakuten.co.jp/kemusiro/diary/200601150000/ 日付が (1970/01/01 00:00:00) と表示された上に文字化けしてしまいます。 MagpieRSSはmagpierss-0.72.tar.gzから必要ファイルを、index.phpの下におきました。 正常に表示させるためには、どう直せばよいでしょうか? <?php require_once('magpierss/rss_fetch.inc'); define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); $count = 5; $length = 60; $url = 'http://api.plaza.rakuten.ne.jp/kemusiro/rss/'; $rss = fetch_rss($url); echo "<ul>"; array_splice($rss->items, $count); foreach ($rss->items as $item) { $href = $item['link']; $title = mb_convert_encoding($item['title'], "SJIS", "auto"); $date = date('Y/m/d H:i:s', parse_w3cdtf($item['dc']['date'])); $description = mb_convert_encoding($item['description'], "SJIS", "auto"); if (mb_strlen($description) > $length) { $description = mb_strcut($description, 0, $length) . "..."; } echo "<li>"; echo "<FONT color=\"#ff8040\">(" . $date . ")</FONT> "; echo "<a href=$href>" . $title . "</a><BR>"; echo $description . "</li>"; } echo "</ul>"; ?>

    • 締切済み
    • PHP
  • 動的なPHPを静的なhtmlページに変換したい

    動的なPHPページ(RSS)を静的なhtmlのページとして、変換したいのですが、どのようにしたら良いでしょうか? 書いたPHPは下記のようなモノです。 <?php error_reporting(E_ERROR); require_once 'rss_fetch.inc'; define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); $url = 'http://b.hatena.ne.jp/entrylist?mode=rss&url=http%3A%2F%2Fwww.lucky-bag.com'; $rss = fetch_rss($url); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "EUC-JP", "auto"); echo "<h3>$title</h3>\n"; echo "<dl>\n"; foreach ($rss->items as $item ) { $title = htmlspecialchars($item['title']); $title = mb_convert_encoding($title, "EUC-JP", "auto"); $description = htmlspecialchars($item['description']); $url = htmlspecialchars($item['link']); echo "<dt><a href=\"$url\">$title</a></dt>\n"; $description = mb_convert_encoding($description, "EUC-JP", "auto"); echo "<dd>$description</dd>\n"; } echo "</dl>\n"; ?> どうぞよろしくお願いいたします。

    • 締切済み
    • PHP
  • MagpieRSSでRSSを取得し、ランダムに表示

    <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'xmlアドレス'; $rss = fetch_rss($url); $title = $rss->channel['title']; //JcodeConvert($str, $from, $to) //0:PASS(無変換)1:EUC-JP 2:Shift_JIS 3:ISO-2022-JP(JIS) 4:UTF-8 $title = JcodeConvert($title, 4, 4); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 4); $url = $item[link]; $description = $item[description]; $description = mb_convert_encoding($description, "Shift_JIS", "auto"); $description = mb_strimwidth($description, 0, 120, "" , "Shift_JIS"); echo "<li><a href=\"$url\">$title</a><br>$description</li>\n"; } ?> と記述し、 <ul> <!--#include virtual="上記phpファイルのアドレス" --> </ul> でサイトにRSSを表示しているのですが、 通常上が新しいものが表示されているのですが、 これをランダムに表示したいと考えています、 shuffleを使えばできるような感じですが、記述方法が全く分かりません。 何を記述すれば、ランダム表示されますか。

    • ベストアンサー
    • PHP
  • phpについて~<div>;foreach

    PHP初心者です。<div>の中でforeachって使えるのですか? <?PHP require_once 'rss_fetch.inc'; $url = $td[SITEURL]; $rss = fetch_rss($url); $title = $rss->channel['title']; $title = $item[title]; $title = mb_convert_encoding($title, "EUC-JP", "auto"); echo<<<__EOF__ <div class="dt"> <p class="dtTitle"> <a href="{$_SERVER["PHP_SELF"]}?id={$td["ID"]}&amp;url={$td["SITEURL"]}"> {$td["SITENAME"]} </a> {$listCt} {$flgImg} </p> <p class="dtCategory">コミュニティ:{$td["CATEGORY"]}{$FlgTag}</p> $NAME <p class="dtComment">{$img}{$td["COMMENT"]}</p> $ADMINCOMMENT <p class="dtDate">登録日:{$td["REGISTDATE"]}[<a href="regist.php?id={$td["ID"]}">編集</a>]</p> この部分↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ <?php foreach ($rss->items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "EUC-JP", "auto"); $url = $item[link]; $date = date("Y/m/d H:i:s", strtotime($item['dc']['date'])); ?> <p class="dtComment"> <li><a href=\"$url\">$title</a>$date</li></p> <?PHP } ?> </div> __EOF__; ?> このような書き方しか思いつかないのですが、 <div>~</div>の中でforeachの使い方を教えてください。

    • 締切済み
    • PHP
  • Magpie RSSを使用して日付表示できないエラー

    初めまして、お世話になります。 PHPに関しては初心者です。 Magpie RSSを使用してフィードをトップページに表示させたいのですが タイトルは問題ないなく表示されるのですが、日付を表示させようとすると1970年01月01日 と表示され取得出来ない状態です。 MagpieRSSのバージョンは0.72でRSS2.0です。 取得先はwordpress バーション2.61になります。 色々と調べてみて Magpie0.7より使用できる$item['date_timestamp']という参照方法も試してみたのですがだめでした。 サーバーの問題かと思い複数のサーバーでも試したのですが1970年01月01日と表示されてしまします。 具体的なソースは下記の通りです。 <?php require_once 'rss_fetch.inc'; define('MAGPIE_FETCH_TIME_OUT', 30); // タイムアウトまでの define('MAGPIE_CACHE_AGE', 30*60); // キャッシュ更新の時間 $url = 'フィードのURL'; $rss = fetch_rss($url); $title = $rss->channel['title']; echo "<li class=\"ItemTitle\"><a href=\"$url\">RSS記事一覧を表示</a></li>\n"; $title = mb_convert_encoding($title, "UTF-8", "auto"); $rss->items = array_slice($rss->items, 0, 10); foreach ($rss->items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "UTF-8", "auto"); $url = $item[link]; $date_str = date("m月d日 ", $item['date_timestamp']); if ($date >= time() - 3600 * 24 * 7) { $date_str = "<EM>" . $date_str . "</EM>"; } echo "<li class=\"ItemTitle\">$date_str<a href=\"$url\">$title</a></li>\n"; }; $url = $rss->channel['link']; ?> どなたか対処法をご存じの方がおられましたらご教授頂けると 幸いに思います。 以上、よろしくお願いいたします。

    • 締切済み
    • PHP
  • MagpieRSSで異なる複数のブログを表示

    お世話になります。PHPの初心者です。 MagpieRSSを使用して、異なる複数のブログを1つの更新欄にまとめ、 最新記事を5件表示させたいです。 いろいろ参考にしながら、下記のようなソースを組み、 なんとか複数のブログを1つにまとめるまでは出来ました。 しかしながら件数の指定方法がわからず、困っています。 どのようにしたら5件表示できるようになるでしょうか? 宜しくお願い致します。 <?php require_once 'rss_fetch.inc'; require_once 'rss_utils.inc'; require_once 'jcode.php'; include_once 'rss_utils.inc'; define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); define('MAGPIE_CACHE_ON', false); $url = array( 'http://example1.com/index.xml', 'http://example2.com/index.xml', 'http://example3.com/index.xml', 'http://example4.com/index.xml'); for ($i = 0; isset($url[$i]); $i++) { $rss = fetch_rss($url[$i]); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "Shift_JIS", "UTF-8"); $rss->items = array_slice($rss->items, 0, 5); foreach ($rss->items as $item ) { $title = $item[title]; $title = mb_convert_encoding($title, "Shift_JIS", "UTF-8"); $item_url = $item[link]; $itemday = date('Y-n-j',strtotime(substr($item['dc']['date'],0,10))); $mday = date('w',strtotime(substr($item['dc']['date'],0,10))); echo "<li><strong>${itemday} $youbi[$mday] ${itemtime}</strong><a href=\"$item_url\">$title</a></li>\n"; } echo "\n"; } ?>

    • ベストアンサー
    • PHP
  • atomのフィードをphpで出力したい

    よろしくお願い致します。 phpの勉強を最近始めまして、 ブログの更新情報をphpで作ったページに出力させたいと思っています。 <?PHP require_once("RSS.php"); $rss=new XML_RSS("http://xmlのアドレス?"); $rss->parse(); ?> <h1><?php print(mb_convert_encoding($rss->channel['title'],"EUC-JP","auto")); ?></h1> <ul> <?php foreach($rss->items as $item){ ?> <?PHP print(mb_convert_encoding($item['$title'],"EUC-JP","auto")); ?> <li> <a href="<?php print($item['link']); ?>"> <?php print(mb_convert_encoding($item['title'],"EUC-JP","auto")); ?> </a> </li> <?php } ?> </ul> こんなスクリプトでrss1.0はタイトルとリンクが上手く表示されるのですが、atomのフィードで表示させようとするとtitleは表示されるのですがlinkが上手く取得できません。 ネットで検索してみたのですが、 通常atomのフィードはMagpieRSS等を利用してrss1.0等に変換したのちに上記のようなスクリプトを利用して表示させるという考え方でよろしいでしょうか? またatomのフィードをスクリプトで表示させる参考になるおすすめのサイトをご存知でしたらURLを教えていただけますでしょうか? どうぞ皆様ご指導よろしくお願い致します。

    • ベストアンサー
    • PHP
  • RSSに関して

    こんばんは。お世話になっております。 只今、テスト的に以下のサイトのソースを参考に、登録していただいた方のブログの一覧表示(更新題名が1件ずつ)が出来るように組んでいるのですが、非常に重たく、他に上手いやり方がある?などと色々と試行錯誤を繰り返している状況です。 http://works.xrea.jp/headline.php イメージ的に、登録してくれた会員のブログを、ブログランキングサイトのように、検索一覧として1件ずつ更新記事(題名)を表示させたいと考えてます。 ソースの流れは、 while($row = mysql_fetch_array($res, MYSQL_ASSOC)){  $url = $row["url"];  require("./rss_index/rss-test.php");  ・  ・ 以上、検索ファイル 以下、rss-test.php <?php require_once 'rss_fetch.inc'; $url = $url; $rss = fetch_rss($url); $title = $rss->channel['title']; $title = mb_convert_encoding($title, "EUC-JP", "auto"); echo "<h5>$title</h5>\n"; $rss->items = array_slice($rss->items, 0, 1); 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"; } ?> 以上、お忙しい中恐縮ですが、ご指摘も含めアドバイスなど頂けたら幸いです。宜しくお願い致します。

    • ベストアンサー
    • PHP