• ベストアンサー

ヒアドキュメントを中断してincludeする方法とは?

ホットペッパーAPIを使ってサイトを作っています。まだ知識が浅く分からないことが多いのですが、下記について教えて下さい。 <?php //サイト設定 $site['title'] = "APIサンプルサイト"; $site['url'] = "http://●●.jp"; $site['mojicode'] = "Shift_JIS"; $site['info'] = "ホットペッパービューティーAPIのサンプルです"; //XMLデータ取得用ベースURL $req = "​http://webservice.recruit.co.jp/beauty/salon/v1/";​ //リクエストパラメータ設定 $name = "◎◎"; $name_kana = "××"; //XMLデータ取得用リクエストURL生成 $req .= "?name=".$name."&name_kana=".$name_kana; $xml = simplexml_load_file($req) or die("XMLパースエラー"); //HTML出力 echo <<<HTML <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>{$site['title']}</title> </head> <body> <h1>{$site['title']}</h1> <hr> {$site['info']} <hr> {$xml->salon->name}<br> {$xml->salon->name_kana}<br> </body> </html> HTML; ?> ------------------------------------ (APIキーを省略しています) 上記の様に作成したページに <?php include_once '../include/commons.php'; ?> を入れて別のphpファイルを参照したいのですが、別の質問で 「表示したい位置でヒアドキュメントを中断して、そこでinclude 」 と教えて頂きました。Googleでいろいろと検索して調べたのですが、ヒアドキュメントを中断してincludeする方法が分かりません。 知識不足なのは承知ですが、どういうキーワードで調べたらいいかもよく分からない状況でして・・。 具体的にどう作業すればいいか教えて頂けないでしょうか。 宜しくお願いします。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • koke29
  • ベストアンサー率58% (114/196)
回答No.2

補足の内容ならヒアドキュメントに入る前にincludeしちゃえばよいのでは?? include_once '../include/commons.php'; //HTML出力 echo <<<HTML で、表示の時は 例えば {$xml->salon->name}<br> の前に入れるなら <hr> HTML; emoji('1'); print <<<HTML {$xml->salon->name}<br> これで出ないですかねぇ。。。とりあえず↓ HTML; <?php emoji('1');?> echo <<< HTML これだと <? の中でさらに<?の記述をしちゃってることになるのでNGです

maimainet
質問者

お礼

回答ありがとうございます! お礼がおそくなってすみません。 教えて頂いたとおりにやったらできました!! <?php ?>の使い方さえ良く分からなかったのですが おかげさまでなんとなく分かってきました。 まだ初歩中の初歩ですががんばります!

その他の回答 (1)

回答No.1

PHPスクリプトの一番最初に書けばいいんではないですか? それともcommons.phpをincludeすることでHTMLか何かが出力されるのでしょうか? それなら //HTML出力 echo <<<HTML <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>{$site['title']}</title> </head> HTML; include_once '../include/commons.php'; echo <<< HTML <body> <h1>{$site['title']}</h1> <hr> {$site['info']} <hr> {$xml->salon->name}<br> {$xml->salon->name_kana}<br> </body> </html> HTML; とかでいいと思いますけど。

maimainet
質問者

お礼

回答ありがとうございます! 上記の通りやってみました。 説明不足で申し訳ないのですが、絵文字を表示するために他のPHPファイルから読み込む必要があってこの様にしています。 表示させたいところへさらに <?php emoji('1');?> と入力する必要があります。 やってみましたが表示されませんでした。 そこで想像をふくらまして、 HTML; <?php emoji('1');?> echo <<< HTML としてみましたが、真白になりました(ナンセンスでしょうか・・・)

関連するQ&A

  • phpでサイト構築していて困っています

    ホットペッパーAPIを使ってサイトを作っています。まだ知識が浅く分からないことが多いのですが、下記について教えて下さい。 <?php //サイト設定 $site['title'] = "APIサンプルサイト"; $site['url'] = "http://●●.jp"; $site['mojicode'] = "Shift_JIS"; $site['info'] = "ホットペッパービューティーAPIのサンプルです"; //XMLデータ取得用ベースURL $req = "http://webservice.recruit.co.jp/beauty/salon/v1/"; //リクエストパラメータ設定 $name = "◎◎"; $name_kana = "××"; //XMLデータ取得用リクエストURL生成 $req .= "?name=".$name."&name_kana=".$name_kana; $xml = simplexml_load_file($req) or die("XMLパースエラー"); //HTML出力 echo <<<HTML <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>{$site['title']}</title> </head> <body> <h1>{$site['title']}</h1> <hr> {$site['info']} <hr> {$xml->salon->name}<br> {$xml->salon->name_kana}<br> </body> </html> HTML; ?> ------------------------------------ (APIキーを省略しています) 上記の様に作成したページに <?php include_once '../include/commons.php'; ?> を入れて別のphpファイルを参照したいのですが、どこに入れれば良いのでしょうか??もしくはこの文章を入れることはできないのでしょうか。 最終的に「../include/commons.php」を参照(読み込み?)できれば良いので、方法を教えて下さい。 昨日からずっと入れる場所をいろいろ変えて試してみましたが、うまくいきません。APIがからんでない別のphp文書の文頭に入れると動作するのですが・・。 質問の仕方が未熟で申し訳ありませんが、宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPのヒアドキュメントの中で多次元配列

    PHP4を用いているのですが、ヒアドキュメントの中で多次元配列が思うとおりに展開されずに困っています。 echo <<<EOM <tr> <td>$req_list_array[$j]['Req_local']</td> <td>$req_list_array[$j]['Req_point']</td> <td>$req_list_array[$j]['User_name']</td> <td>$req_list_array[$j]['Req_time']</td> </tr> EOM; 上記のように打っても、 Array['Req_local'] Array['Req_point'] Array['User_name'] Array['Req_time'] と表示されてしまいます。 うまい解決方法をご存知の方よろしくお願いします。 ${req_list_array[$j]['Req_local']} こんな風にしてみたら、エラーが発生してしまいました。

    • ベストアンサー
    • PHP
  • ヒアドキュメントとクラスの基本的?な質問です

    PHPのヒアドキュメントを使ってHTMLのクラスを使ろうと思っているのですがいきなりわからなくなってしまいました。下のソースのどこがいけないのでしょうか。 エラー内容は Parse error: parse error, unexpected $end in \Html.php on line 19 です。よろしくお願いします。 index.php <?php require_once("./Html.php"); $html = new Html(); print $html->NoFrame(); ?> Html.php <?php class Html{ function Html(){ } function NoFrame(){ $html = <<<EOF <html> <head> <title> </title> </head> <body> おーい </body> </html> EOF; return $html; } } ?>

    • ベストアンサー
    • PHP
  • HTMLのincludeについて教えて下さい

    ほぼ、PHPかWordPressをいじってて 今回、HTMLの仕事があり、自分がバックでつくことになりました そこでお聞きしないのが htmlってinclude出来るのでしょうか? もしくは、その代わりになるものがあれば URLとご一緒にアドバイス頂ければと思います。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • ヒアドキュメントで表示されたものをHTMLで保存

    こんにちは ヒアドキュメントなどをいろいろ使って、一つのWEBページを表示しております。 表示はバッチリなのですが、どうやってもHTML形式で正しく保存ができません。 HTMLファイルはできあがるのですが、容量は0kbになってしまいます。 今まで試したのは、whileとfopenを使った方法なのですが、なぜか失敗しました。 いろいろ調べるとheader関数を使う方法があるようなのですが、 xamppなどではうまく動作しないことがあると書かれていたような。。。 具体的な記述方法を教えてください。 私はxamppを使用しており、 表示画面のURLは(http://localhost/php-files/hogetti.php)になっています。 皆様よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPのインクルード

    WEBサイトをPHPで構築したいと考えています。 PHPの場合、ヘッダーやフッターなどの共通部分をインクルードできると思いますが、 ヘッダー内でもTitleやDescriptionなどのメタタグでページごとに変わる部分はどうすればよいのでしょうか? PHPでサイト構築している方はどうやってるのでしょうか?

    • ベストアンサー
    • PHP
  • phpのincludeで表示を変化させたい

    includeでHTMLの表示を変えられるように したいのですが、どうもうまくいきません。 (ブラウザ表示が真っ白になる。) 以下のようなソースを書いてみました。(php4.3.11,apache) (1) test01.php <?php $param = $_GET['param']; include ("./includes/datapack01.php"); ?> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=EUC-JP"> <TITLE>COMPANY A - <?php echo $title; ?></TITLE> </HEAD> <BODY> <span> test </span> </BODY> </HTML> (2) datapack01.php <? if($param == "8") { $title = "お問い合わせ : オーダー申し込み"; } ?> 意図としては、http://hoge.com/test01.php?param=8 とアクセスすれば、ブラウザのタイトル欄に 「COMPANY A お問い合わせ : オーダー申し込み」 と表示させたいところですが、 実際は、ブラウザ表示は真っ白となってしまいます。 http://hoge.com/test01.php とすれば、「test」とのみ表示されるのですが・・・

    • ベストアンサー
    • PHP
  • wordpressでincludeが表示されない

    wordpressで投稿した際に、phpのincludeファイルを読み込ませようとしています。 wordpressのサイトを sample.com とした場合、 投稿記事に以下を貼り付けています。 <?php include("http://sample.com/include/link.inc");?> サイトはUTF-8、link.incファイルもUTF-8で保存しています。 試しにsample.comの直下にtestフォルダを作って、その中にhtmlファイルを作って 同様に上記のphpのinclude記述をしたところ、ちゃんと表示されました。 ちなみに別のドメインサイト(HTMLサイト)でも上記の記述で表示されました。 wordpressのサイトで表示されないのは何が原因でしょうか?

    • 締切済み
    • PHP
  • PHPのinclude_onceで外部ファイル化したサイトURLがリン

    PHPのinclude_onceで外部ファイル化したサイトURLがリンクしてくれない。 Webサイト制作中ですが、サイトURLをいたるところに記述するのと、同じ構造のサイトをいくつも制作するので、使い回しにもなるということで、サイトURLだけを記述したurl.phpという外部ファイルを作成しました。 すると、少なくとも以下のような場合、リンクをクリックするとページが存在しないというページが開いてしまいます。 どうやら相対パスと勝手に解釈されてhrefタグの記述がおかしくなるようです。 どうやって直せるでしょうか? ●リンクをクリックして開いたブラウザアドレスバーに出たURLは以下です。 http://僕のサイト.jp/syohin/%EF%BB%BFhttp://xn--u9jxf0b3dt27s.jp ●ブラウザ下部のステータスバーに出ているリンク先は以下です。 http://僕のサイト.jp/product/http://xn--u9jxf0b3dt27s.jp ●HTMLの記述は以下です。 <a href="<?php include_once("url.php"); ?>" title="僕のサイト.jpのトップへ">僕のサイト.jpのトップへ</a> ●url.phpに書いた記述はサイトURLだけです。以下です。 http://xn--u9jxf0b3dt27s.jp url.phpを置いているディレクトリへのパスがおかしいのか?と思い、サイト最上階、つまりindexがある一番上の階層にurl.phpをアップロードしてもみたのですが、結果は同じでした。 以下のように「../」とつけてもダメでした。 <a href="../<?php include_once("url.php"); ?>" title="僕のサイト.jpのトップへ">僕のサイト.jpのトップへ</a> 外部ファイル化して共通部分を沢山つくているのでどうしても相対パスではダメな部分が沢山あるので何とかしたいのですが・・・

    • ベストアンサー
    • PHP
  • file関数によるXMLの取得について

    XMLの取得をしようとしているのですが、PHPのバージョンが4.1のためSimpleXMLが使えずfile関数を使おうとしています。 例えば取得したいXMLの値が、 <Result>  <Title>タイトル</Title>  <Summary>  文章  </Summary>  <Url>  http://  </Url> </Result> だった場合、<Title>,<Summary>,<Url>はどのように取得するのでしょうか? 以下の方法で取得をしてみようとしたのですが、これだと<Summary>と<Url>は取得できるのですが<Title>が取得できません... ↓<Title>を取得する場合 $api_url = "http://"; $api_url2 = implode("",file("$api_url")); $title_exp = explode("<Title>",$api_url2); $title_count = count($title_exp); for($i=0;$i<$title_count;$i++){ $title = explode("</Title>",$title_exp[$i]); }; <Title>が他の項目と違うところは改行がない部分だけのようなのですが、どのようにすれば取得できるのでしょうか? 色々なサイトを見ながら手探りで学んでいますのでおかしなところがあるかもしれません。 その点もご指摘いただければ幸いです。 宜しくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう