- 締切済み
htmlからのphp結果表示
お世話になります。 掲題の件での質問ですが、行き詰まったので教えてください。 現在、以下の処理をしていますが (1)phpにてrss結果を取得し、echoにて出力 (2)htmlにて、(1)の結果を<iframe>にて取得して表示 (2)にて、インラインフレームではなく、通常の文章ライクに表示したいのですが 受け取り方、表示の仕方がわかりません。。。 <?php include("xxx.php"); ?> としても何も表示されないので困っています。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- chupark
- ベストアンサー率41% (90/218)
#1です。 先の回答でうまく表現できなかったのですが、 要するに、rssを取得して表示するのがそのサイトの目的であれば、 phpとhtmlをそれぞれ作る必要はないのではないか、と思ったのです。 php自体がそこまでできているのであれば、 最終行のechoでHTMLを頭から全部出力してやれば、 統合された一つのページですむのではないでしょうか。 echo "<a href=\"$url\" target=\"_blank\">$title (${itemday})</a><br />\n"; とされている部分を、 $itemday = ${itemday}; echo <<<HTML <html> <head></head> <body> … <a href="$url" target="_blank">$title($itemday)</a><br /> … </body> </html> HTML; のように、目的のページ全部をechoで出力してやるわけです。 サイトを分けないとダメな事情がおありなんでしょうか。
- JaneDue
- ベストアンサー率75% (263/350)
直接結果だけ欲しいなら includeではなく、 echo file_get_contents("http://PHPのURL"); でも
- chupark
- ベストアンサー率41% (90/218)
色々方法はあると思うのですが、 >(1)phpにてrss結果を取得し、echoにて出力 と書かれていますが、echoで出力というのであれば、 そもそもそのphp上でHTMLを出力してはまずいんですか? 何かの事情で(2)のように別のhtml上で出力したいということであれば、 (1)のphpのソースが書かれていないのでよくわかりませんが、 (1)のrss取得から出力する結果を変数に入れるまでの部分をfunctionにしておいて、 function Hoge(){ …… $value = xxx; return $value; } HTML内で、 <?php include("xxx.php"); echo Hoge(); ?> という風に呼び出してみてもうまくいきませんか?
補足
ご回答ありがとうございました。 PHP等を昨日から始めたばかりなので 応用が利かないのですが、現状を掲示します。 PHPソースは以下です。 <?php define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); require_once 'rss_fetch.inc'; require_once 'code_table.ucs2jis'; require_once 'jcode.php'; $url = 'http://xxx.xml'; $rss = fetch_rss($url); $title = $rss->channel['title']; //JcodeConvert($str, $from, $to) $title = JcodeConvert($title, 3, 0); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 2); //$itemday = date('Y/n/j',strtotime(substr($item['dc']['date'],0,10))); $itemday = date('Y/n/j',strtotime(substr($item['published'],0,10))); $itemday = date('Y/m/d H:i:s',strtotime($item['published'])); $itemday = JcodeConvert($itemday, 4, 2); $url = $item[link]; $str = $title; echo "<a href=\"$url\" target=\"_blank\">$title (${itemday})</a><br />\n"; } ?> で、htmlにて <iframe src="/xxx.php" ></iframe> で表示しています。 >と書かれていますが、echoで出力というのであれば、 >そもそもそのphp上でHTMLを出力してはまずいんですか? 現状は、php上でhtml出力(=echo?)している認識なのですが そもそも違いますかね・・・? iframeでしか受け取れないようなので困っているので HTMLで他の方法で受け取り→表示できれば問題ないのですが・・・ ご呈示いただいた案ですと、配列に入れてHTMLで受け取る必要がありそうですが HTMLにてどのように表示すべきなのでしょうか。 これから試してみますが、ご教示お願いします。
お礼
ほんとありがとうございました。 最初の回答にあったように、Function化しました。 ---------------------------------- <?php define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); require 'rss_fetch.inc'; require 'code_table.ucs2jis'; require 'jcode.php'; function get_value($url){ define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); global $result; $rss = fetch_rss($url); $title = $rss->channel['title']; $title = JcodeConvert($title, 3, 0); foreach ($rss->items as $item ) { $title = $item[title]; $title = JcodeConvert($title, 4, 2); $itemday = date('Y/n/j',strtotime(substr($item['published'],0,10))); $itemday = date('Y/m/d H:i:s',strtotime($item['published'])); $itemday = JcodeConvert($itemday, 4, 2); $url = $item[link]; $str = $title; //広告排除して返す if (strpbrk($str, 'PR: ')) { echo ""; $result = ""; } else { echo "<a href=\"$url\" target=\・・・"; $result = $result."<a href=\"$url\" target=\"_blank\・・・"; } } return $result; } ?> ---------------------------------- そしてhtml側で <?php include file_get_contents("/xxx.php"); echo get_value('xxx.xml'); ?> としたのですが、表示されず・・・ php単体では問題ないのですが・・・ ちなみにですが、$resultに結果を追記させたんですが 全部で11ほどある結果のうち後半7つまでしか入ってません。 サイズってあるんですかね。。 何度もすいません。
補足
たびたびありがとうございます。 >サイトを分けないとダメな事情がおありなんでしょうか。 サイトの一部にrss結果を表示したく html部分がすでに完成しているため、php化できない事情があります。 また、技術的にも・・・ 関数化して・・・を現在試してますが 構文エラーで詰まっています(^^; 別件ですいませんが、 <?php class get_rss{ public $result; function get_value($url){ } return $result; } ?> と別ファイルを作成してみました。 ※先ほどのecho内容を$resultに保持してます。 これを別ファイルからよびたいのですが <?php require('xxx.php'); $url = 'http://xxx.xml'; echo get_rss.get_value($url); ?> ではだめでしょうか? お手数ですが、よろしくお願いします。