• 締切済み

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
  • 回答数2
  • ありがとう数0

みんなの回答

  • warez
  • ベストアンサー率57% (29/50)
回答No.2

<div> <?php foreach ($items as $item): ?> <p><a href="<?php echo $item['url'] ?>"><?php echo $item['title'] ?></a><?php echo $item['date'] ?></p> <?php endforeach; ?> </div> 制御構造に関する別の構文 http://jp.php.net/manual/ja/control-structures.alternative-syntax.php

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

何かPHPの基本を理解されてないような気がします。 どういう目的でヒアドキュメントを使っているつもりでしょうか? ヒアドキュメントの中は文字列なので、PHPプログラムを書いても実行されませんよ。そのまま表示されます。 ><div>~</div>の中でforeachの使い方を教えてください。 divはHTMLの要素であり、foreachはPHPの構文で全く関係ありません。 ヒアドキュメントの中でforeachを使うという意味なら上に書いたように無理です。 ・HTML要素は、<?php ... ?> の外に書く  または、PHPプログラムからprintやecho等で出力する ・PHP構文は、<?php ... ?> の中に書く

関連するQ&A

  • PHPにスタイル、CSS

    PHP初心者です。 下記のように、echoで書き出した<li>に、スタイルを付ける場合はどのようにすればいいのでしょうか? CSSに記述しましたが、うまくいきません。 <div id="main"> <?php $rss = simplexml_load_file("http://feedblog.ameba.jp/rss/ameblo/highball-k"); foreach ($rss->item as $item) { $dc = $item->children('http://purl.org/dc/elements/1.1/'); $link = $item->link; $title = $item->title; $date = $dc->date; $date = strtotime($date); $date = date('Y/m/d',$date); echo "<li>$date&nbsp;&nbsp;<a href=\"$link\">$title</a></li>\n"; } ?> <!-- / #main --></div>

    • ベストアンサー
    • PHP
  • smartyのforeachの使い方?

    smartyについて教えてください。 mysqlのデータを繰り返し表示させたいのですが Warning: htmlspecialchars() expects parameter 1 to be string, array given in パス modifier.escape.php on line 26 とエラーが出てしまい動作しません。 foreachの使い方がおかしいのかと思いマニュアルをみてみたのですが わかりませんでした。 どうすれば繰り返し表示できるようになるでしょうか? ---php--- $i = 0; $list = array(); while ($col = mysql_fetch_array($res, MYSQL_ASSOC)) { $list[$i]['id'] = $col[id]; $list[$i]['title'] = $col[title]; $list[$i]['main'] = $col[main]; $i++; } $smarty->assign('list', $list); ---tpl--- {foreach item=list from=$list} <tr> <td>{$list.id}</td> <td>{$list.title}</td> <td>{$list.main}</td> <td><a href="hoge.php?id={$list.id}">a</a></td> <td><a href="hoges.php?id={$list.id}">a</a></td> </tr> {/foreach}

    • ベストアンサー
    • PHP
  • 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
  • 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
  • PHP ブログの交信記録

    PHP初心者です。 下記のソースで一行目の$rss = simplexml_load_file( 以降にアドレスを入れて、ブログの更新情報を表示させたいのですが、うまくいきません。なぜでしょうか? <?php $rss = simplexml_load_file("http://d.hatena.ne.jp/xxxx/rss"); foreach ($rss->item as $item) { $dc = $item->children('http://purl.org/dc/elements/1.1/'); $link = $item->link; $title = $item->title; $date = $dc->date; $date = strtotime($date); $date = date('Y/m/d',$date); echo "<li>$date&nbsp;:&nbsp;<a href=\"$link\">$title</a></li>\n"; } ?>

    • 締切済み
    • PHP
  • PHPでHTMLを分解してMySQLに登録

    パターン化されているHTMLソースをDBに登録したい。 環境 PHP:5.1.6 MySQL:5.0.77 下記のようなHTMLソースがあります。このソースを区切ってMySQLに登録したいと思います。 テーブル名:sample (2列構成) フィールド名:id(auto_increment),text -----HTMLソース----------------------------------------- <p> <div class="sample_title">サンプルタイトルA</div> <div class="item">サンプルアイテムA-1</div> <div class="item">サンプルアイテムA-2</div> <p> <div class="sample_title">サンプルタイトルB</div> <div class="item">サンプルアイテムB-1</div> <div class="item">サンプルアイテムB-2</div> 以下同様のデータが続く・・・100~500個程度。 -------------------------------------------------------- HTMLソースに</p>の終了タグはありません。 正規表現等で<p>から、次の<p>までのソースを取り出しを繰り返せば良いと思いますが、どのようにプログラムを作ればよいかわかりません。 求める結果は上記テーブルの 1番目のtextフィールドに <p> <div class="sample_title">サンプルタイトルA</div> <div class="item">サンプルアイテムA-1</div> <div class="item">サンプルアイテムA-2</div> 2番目のtextフィールドに <p> <div class="sample_title">サンプルタイトルB</div> <div class="item">サンプルアイテムB-1</div> <div class="item">サンプルアイテムB-2</div> という値が入っていることです。 流れとしては下記のようになると思いますが、 どのようなプログラムを書けばよいのでしょうか? <p>から次の<p>を正規表現で取り出し。 MySQLに登録。 これをソースが終わるまで繰り返す。 ご回答よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPスクリプトにスタイルシートを適用するには?

    MagpieRSS(http://magpierss.sourceforge.net/)で取得した以下のPHPスクリプトでRSSをリスト化してWEB表示させることができたのですが、これにスタイルシートを適用したい場合、どのような方法がありますか?PHP初心者なためぜんぜんわかりません。 <?php require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'http://~; $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, 2); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 2); $url = $item[link]; echo "<li><a href=\"$url\">$title</a></li>\n"; } ?>

    • ベストアンサー
    • PHP
  • 携帯サイトがソフトバンクのみ表示されない

    お世話になります。 只今携帯サイトを作成中なのですが、調べてもどうしてもわからなかったので質問させていただきます。 RSS取得のPHPコードを埋め込んだPHPファイルがソフトバンクのみ、埋め込んだ場所から何も表示されなくなってしまいます。 Docomo,auは普通に表示されます。下記が全部共通のソースです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>aaaaaaaaaaa</title> </head> <body> <a name="top"></a> <div align="center"><img src="img/top.png"></div> <marquee bgcolor="#FF9900" LOOP=16> <font size="-1" color="#FFFFFF">aaaaaaaaaaaaaaaaaaaaaaaaa</font> </marquee> <hr><br> <div align="left"><img src="img/news.png" width="80" height="19"><br> <?php $url = 'http://〇〇〇〇〇〇〇〇〇〇〇/rss2/'; $rss = fetch_rss($url); $title = $rss->channel['title']; echo " <dl>\n"; $rss->items = array_slice($rss->items, 0, 3); foreach ($rss->items as $item ) { $title = $item[title]; $url = $item[link]; $date = $item['date_timestamp']; $date = date('Y年m月d日',$date); echo " <dt>$date </dt>\n"; echo " <dd><a href=\"$url\">$title</a></dd>\n"; } echo " </dl>\n"; ?> </div> どなたかご教授お願いいたします。 本当に困っています。よろしくお願いします。

    • 締切済み
    • 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
  • PHPのforeach文について

    yahoo!のwebサービスを利用して、自サイトにランキング表示をしたいのですが、デフォルトで20件まで表示されてしまいます。 スペースの関係で3~5件程度までの表示にしたいのですが、方法がどうしても分かりません。 yahoo!カテゴリランキング http://developer.yahoo.co.jp/webapi/shopping/shopping/v1/categoryranking.html (offsetのところに表示件数のことが書いてあります。) 現在、foreach文を使い、下記のソースで思案中です。 foreach($xml->Result->RankingData as $ranking){ $name = $ranking->Name; $url = $ranking->Url; $medium = $ranking->Image->Medium; $store = $ranking->Store->Name; print <<< page <a href="{$url}" target="_blank"><img src="{$medium}"</a> <p><a href="{$url}" target="_blank">{$name}</a></p> <p>{$store}</p> page; ・ ・ ・ ループを任意の数で中断させるのかなとも思って、ネット上で調べてみましたが、for文やwhile文は出来るようですが、foreach文は載ってなくて困っています。 PHPもそれほど詳しくなく、サンプルを修正していく程度の知識しかありませんので、是非アドバイスを宜しくお願いします。 PC環境は WindowsXP PHP5 です。

    • ベストアンサー
    • PHP

専門家に質問してみよう