• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「include()」関数の使い方について)

「include()」関数の使い方について

このQ&Aのポイント
  • include()関数の使い方について解説します。
  • "include()"関数の使い方に関する質問にお答えします。
  • include()関数を使ってファイルを取り込む方法について説明します。

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

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

misc.phpのecho文の中に hasn't のように ' を使っているところが何ヶ所かあるのがエラーの原因です。 misc.phpでは変数を使ったりする処理はしていないようなので、misc.phpの最初の<?php echo'と最後の';?>を削除してhtml文だけにしてincludeしたほうがいいかもしれません。

fanzhao
質問者

お礼

教えていただいたようにmisc.phpの最初の<?php echo'と最後の';?>を削除、先頭に<TEXTAREA>に代え</TEXTAREA>を追加、UTF-8形式で保存。 被挿入分の挿入カ所を変更し、こちらもUTF-8形式で保存、アップロードしたところ http://www.seanewsonline.com/dir1995/page22.php のように表示され、成功しました。 有り難うございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

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

misc.phpの <?php echo'<TEXTAREA> echo'<align="left" で最初のecho'<TEXTAREA>はいらないと思います。エラーの原因となっています。 正しくは <?php echo'<align="left" です。

fanzhao
質問者

補足

最初のecho'<TEXTAREA>を取り除いたところ http://www.seanewsonline.com/dir1996/page22.phpの <TEXTAREA>のボックスが1つ消失、2つのみ表示され、http://www.seanewsonline.com/dir1995/page22.php http://www.seanewsonline.com/dir1997/page22.php のケースでは変化が見られませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

page22.phpとmisc.phpの両方をUTF-8で保存すればどうでしょうか。 includeする方とされる方の文字コードを統一しないと、どちらかが文字化けしてしまいます。 それとPHPではunicode(UTF-16)を処理することは出来ますがUTF-16で書かれたプログラムは実行できません。英数記号が2バイトになるため<?phpすら理解できないためです。<?phpが< ? p h pになってしまいます。

fanzhao
質問者

補足

ホームページを一太郎で作成しており、UTF-8方式の保存ができなかったのですが、ワード試してみました。 しかし双方をUTF-8で保存し、アップロードしてみましたが、 http://www.seanewsonline.com/dir1995/page22.php のようにエラー・メッセージが表示され変化は有りませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPファイルを.html拡張子で動かす.htaccessの設定法

    以下のURL: http://www.seanewsonline.com/dir1999/page22.htm の「シンガポール情報文化省認証 MISC GuestBook」行の「MISC」部分のスクリプト『<FONT STYLE="font-size:6.66mm" COLOR="#666600" SIZE="5"><B><A HREF="http://www.seanewsonline.com/misc/index.htm">MISC</A></B></FONT>』を取り出し『misc.php』と言うファイルを作り、アップロードしました。 その後で上記URLのページの『<FONT STYLE="font-size:6.66mm" COLOR="#666600" SIZE="5"><B><A HREF="http://www.seanewsonline.com/misc/index.htm">MISC</A></B></FONT>』部分を『<?php include'misc.php' ;?>』に置き換え、ファイル名を『page00.htm』及び『page00.php』として両方ともアップロードしました。 さらに『AddHandler application/x-httpd-php .html』と言うスクリプトを「.htaccess」ファイルにし、同じ場所にアップロードしました。 その結果、『page00.htm』の方は以下のURLのように「シンガポール情報文化省認証 MISC GuestBook」行の『MISC』部分が欠落して表示されました。 http://www.seanewsonline.com/dir1999/page00.htm しかし『page00.php』の方は以下のURLのように「<?php include'misc.php' ;?> 」が機能し、『MISC』部分が欠落することなく表示されました。 http://www.seanewsonline.com/dir1999/page00.php 質問:『page00.htm』の方も「<?php include'misc.php' ;?>」機能させるにはどうしたら良いでしょうか。

    • ベストアンサー
    • PHP
  • includeの仕方について

    いつもお世話になっております。 \Apache2\htdocs以下に、 public_htmlーindex.php | ーrrrフォルダーconfig.php ー main.php を作りました。 それぞれ、 index.php <?php $CONF['id'] =1; include('./rrr/config.php'); include($DIR_hoge."main.php"); ?> config.php <?php // main hoge directory $DIR_hoge= '/public_html/rrr/'; ?> main.php <?php echo "main.phpが読み込まれました!<br />"; echo "あなたのIDは、".$CONF['id']."です。"; ?>と書きましたが、index.phpはmain.phpが読み込めていません。 Warning: include(/public_html/rrr/main.php) [function.include]: failed to open stream: No such file or directory in.... 何か書き間違いがあるのでしょうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • Smartyでテンプレートの場所を指定する方法

    Smartyでテンプレートファイルの場所を指定するいい方法を教えてください。 公式マニュアルには基本的には(1)のようにやるのだと書いてあります。そして拡張セットアップとして(2)の方法が紹介されています。これなら「ディレクトリパスの設定を同じ変数に何度も割り当てる代わりに、一箇所でそれらを行う事が出来ます」とのことですが…。 しかし拡張セットアップの方法でも、プログラムファイル(.php)の中に環境依存の値を記述しています。私はJava開発の経験はあり、PHP開発の経験は無く、現在は趣味の範囲でPHPをやっています。 で、Javaの経験からすると、環境依存の値も設定ファイルのパスもプログラムファイルに書くことはまず無いので、(2)の方法でも気持ち悪く感じます…。また「ページを呼び出すたびに毎回setup.phpを呼ぶの?サーバー起動時に読み込むべき値・ファイルだろうが…」とも思ってしまいます。 …しかし私がどう感じるかは別として、実際の開発の現場ではどうすることが多いのか知りたくて質問をする事にしました。 質問は以下です。 [a]Smartyのテンプレートファイルのパスなどは、どこにどう書くことが多いのか? [b]Smartyに限らず、PHPという言語では、環境設定の値や設定ファイルのファイル名やパスを、プログラムファイル(.php)に書くのがあたりまえなのか?どうすることが多いのか。 [c]PHPではプログラムで使う値として、サーバー起動時に設定値・設定ファイルを読み込む一般的な仕組みがあるか?(サーバー設定値でもないのにphp.iniに書いてini_getで取得するなんてことが許される?他にもっとスマートな方法がある?) ※具体的な例を挙げて教えていただけると助かります。また、「あまりやらないけど、こうやったこともあるよ」などというイレギュラーなケースも教えていただけるとうれしいです。 よろしくお願いします。 --(1)index.php--------------------------------------------- <?php require_once(SMARTY_DIR . 'Smarty.class.php'); $smarty = new Smarty(); $smarty->template_dir = '/web/www.example.com/guestbook/templates/'; $smarty->compile_dir = '/web/www.example.com/guestbook/templates_c/'; $smarty->config_dir = '/web/www.example.com/guestbook/configs/'; $smarty->cache_dir = '/web/www.example.com/guestbook/cache/'; $smarty->assign('name','Ned'); $smarty->display('index.tpl'); ?> ----------------------------------------------------------- 基本的なインストール | Smarty http://www.smarty.net/docs/ja/installing.smarty.basic.tpl --(2)setup.php--------------------------------------------- <?php require('Smarty.class.php'); class Smarty_GuestBook extends Smarty { function __construct() { parent::__construct(); $this->template_dir = '/web/www.example.com/guestbook/templates/'; $this->compile_dir = '/web/www.example.com/guestbook/templates_c/'; $this->config_dir = '/web/www.example.com/guestbook/configs/'; $this->cache_dir = '/web/www.example.com/guestbook/cache/'; $this->caching = Smarty::CACHING_LIFETIME_CURRENT; $this->assign('app_name', 'Guest Book'); } } ?> --(2)index.php--------------------------------------------- <?php require('guestbook/setup.php'); $smarty = new Smarty_GuestBook(); $smarty->assign('name','Ned'); $smarty->display('index.tpl'); ?> ----------------------------------------------------------- 拡張セットアップ | Smarty http://www.smarty.net/docs/ja/installing.smarty.extended.tpl

    • ベストアンサー
    • PHP
  • Javascriptの関数をPHPで作りましたが戻値を得る方法がわかりません。

    はじめまして。xpにxamppの環境で利用してます。 PHPをjavascriptの関数に出来ると知り、 geturl.php <?php header("Content-type: application/x-javascript"); echo "function picturl() {"; ~ MySQLを特定の条件で検索し、画像の保存先URLを$urlへ格納 ~ echo "}"; ?> showpict.html <html> <head> <meta http-equiv="content-type" content="text/html;charset=shift_jis"> <title>photo</title> <script type="text/javascript" src="geturl.php"></script> <script type="text/javascript"> ~以下でたとえば、  var url = picturl(); とすれば url に 値が入るかと思って作成して見ました。 PHPの$urlには、 ./data/001.png のような値が入ります。 私が参考にしたPHP文では戻値は変数ではなく生のテキストで echo "document.write(\"文章\")"; となっており、これは実行できました。 変数を使用して上記のような値を求めようとしたところ、 echo "document.write(\"$url\")"; echo "retuen $url"; などを試してみましたがうまくいきません。 この様な方法では利用できないものなのでしょうか?。 それともecho文が以外の方法で行うものなのでしょうか?。 よろしくご協力のほどお願いいたします。

    • ベストアンサー
    • PHP
  • fputsで書き込みを行う際に、includeを使用したいです。

    phpの初心者です。 どうぞよろしくお願いします。 ユーザーがクリックしただけでページが生成されていくといったような サイトを現在作成しています。 以下、構造です。 index.php regist.php footer.inc page(dir)---a(dir)-------index.php       └b(dir)-------index.php       └c(dir)-------index.php 動作としては、index.php(TOP階層)でリンクをクリックするとregist.phpにジャンプし、 regist.phpのプログラムの中で、page(dir)の中にa,b,c,d,e…とディレクトリが 自動生成されて、中にindex.phpファイルを生成します。 regist.phpの最後でheader("Location:")を使用し、生成されたページに自動的にジャンプします。 生成されたページのフッターに今までクリックされたリンクという紹介のようなものがあります。 そこの記述が regist.php内の記述/////////////////// ob_start(); include("footer.inc"); $footer = ob_get_contents(); ob_end_clean(); fputs($fp, "$footer"); footer.inc内の記述/////////////////// <?php $arr = scandir('./page/', 1); foreach($arr as $key => $dir){ //リンク名を日本語に変換 $dir = str_replace("http://".$domein."/page", "http://".$domein."/page/", "$dir"); print "<a href=\"http://".$domein."/page/".$dir."/\">$dir_url</a> \n"; } ?> 上記のようなプログラムですと、a,b,c,d…x,y,zと順番にディレクトリとページが生成されていった場合に aの中のindex.phpではリンクなし。 bの中のindex.phpではaへのリンク。 cの中のindex.phpではaとbへのリンク。 dの中のindex.phpではaとbとcへのリンク。 eの中のindex.phpではaとbとcとdへのリンク。 一つずつリンクが増えていくようになってしまってます。 これを、自動生成されたページでは、常にクリックされたすべてのリンクが出るようなものにしたいというのが希望です。 aの中のindex.phpではaとbとcとdへのリンク。 bの中のindex.phpではaとbとcとdへのリンク。 cの中のindex.phpではaとbとcとdへのリンク。 dの中のindex.phpではaとbとcとdへのリンク。 eの中のindex.phpではaとbとcとdへのリンク。 なのでregist.phpの記述を… 修正後:regist.php内の記述/////////////////// fputs($fp, "<?php include(\"../../footer.inc\"); ?>"); こちらですと、読み込み形式になり常に新しい情報が入るかな?と思い試したのですが思うように動きません。 修正前:regist.php内の記述/////////////////// ob_start(); include("footer.inc"); $footer = ob_get_contents(); ob_end_clean(); fputs($fp, "$footer"); 上記ですと、テキストを書き込む形になりますので、常に新しい情報ではありません…。 分かる方、ご回答頂けますと幸いです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPのopendir関数って・・・。

    <?php $dir = "/etc/php5/"; // 既知のディレクトリをオープンし、その内容を読み込みます。 if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { echo "filename: $file : filetype: " . filetype($dir . $file) . "\n"; } closedir($dh); } } ?> 上の例の出力は、たとえば以下のようになります。 filename: . : filetype: dir filename: .. : filetype: dir filename: apache : filetype: dir filename: cgi : filetype: dir filename: cli : filetype: dir とありますが、 filename: . : filetype: dir filename: .. : filetype: dir は何もフォルダになくても出ますよね? これは何ですか??

    • ベストアンサー
    • PHP
  • ファイル存在チェック

    日本語サイトと、英語サイトの行き来で: 日本語サイト: http://www.hoge.com/sample/sample.html 英語サイト: http://www.en.hoge.com/sample/sample.html 英語サイトのsampleディレクトリに、日本語サイトのsampleディレクトリと同一ファイルが存在した場合のみ、日本語サイトのそのページに<a href="">English</a>のリンクを表示させたく、 下記の様なPHPを書きました。 <?php $url_en = 'http://www.en.hoge.com'; $current_dir = basename(dirname($url)) ; $filename = basename($_SERVER["PHP_SELF"]); if (file_exists($url_en.'/'.$current_dir.'/'.$filename)) { echo ($url_en.'/'.$current_dir.'/'.$filename); } ?> ファイルが存在するので、echo の部分を出力してくれても良さそうな気がするのですが、 表示されません。 また、echo の部分を<a href=""></a>に入れるには、どの様に書いたら宜しいでしょうか?

    • ベストアンサー
    • PHP
  • $_GETで受け取った値に対して、htmlspecialchars()した時の謎なふるまいについて。

    //(環境)PHP5、SQLite3、Firefox <?php echo $_GET["page"];  //(1)何も出力されない。 $_GET["page"] = htmlspecialchars(sqlite_escape_string($_GET["page"])); echo $_GET["page"];  //(2)<br>と出力されてしまった。 ?> 上記スクリプト index.php に対し、 ブラウザURL記入欄にて、 http://example.com/index.php?page=<br> と、ゲットで値「<br>」を与えたURLを打ち込んだところ、 上記ソースのコメントに書いたような出力結果となりました。 私の予想では、 (1)では、<br> を、 (2)では、&lt;br&gt; を、 それぞれ出力するものと思っていましたが、結果は全く違いました。 これはなぜなのでしょう? さらに、 上記において、 $_GET["page"] = htmlspecialchars($_GET["page"]); としても、結果は同じでした。 ------------------------------ また、 $_GET["page"] = htmlspecialchars(sqlite_escape_string($_GET["page"])); の場合に、 ゲットで渡す値を「<br>」から「<'br'>」へ変えてみると、 (1)では、<'br'>を、 (2)では、<''br''>を、 それぞれ出力しました。 ------------------------------ どなたか、分かりましたら教えて下さい。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • インクルードファイル内にPHPコードを挿入してecho表示

    処理が異なる2つのPHPファイルを一つのテンプレートファイルから index.phpファイルへ表示させたいのですが、テンプレートファイル内に css_echo.phpをインクルードさせたコードを書くとそのままソース上に表示されてしまいます。 どのような方法をとればいいかアドバイス下さい。 ■条件としては、 ・css.php/css_echo.phpの処理ファイルはそれぞれ別ファイルとしたい ・index.phpファイルは <html> <head> <?php require_once('./css_echo.php');//ブラウザを判別してCSSファイルを出力 ?> </head> <body> <?php $temp = "./temp.html"; //このページのテンプレートファイル名パス require_once('./echo.php'); ?> </body> </html> には書かない方法で対応したいです。 ファイルは以下です。 ---------------------------------------------------------------------- テンプレートファイル(temp.html) <html> <head> <!--問題はここです。 --> <?php require_once('./css_echo.php');//ブラウザを判別してCSSファイルを出力 ?> </head> <body> サンプル表示{この中はブラウザ判別して表示・非表示にする} </body> </html> 処理PHPファイル(echo.php) <?php $htm = file_get_contents($temp); echo preg_replace('/[{}]/', '', $htm);// {}内を削除して表示 ?> ブラウザ判別用ファイル(css_echo.php) <?php //実際にはこの前にブラウザ判別し処理コード(省略) echo "<link rel=\"stylesheet\" href=\"$dir$pc\" type=\"text/css\">\n"; ?> メイン表示用PHPファイル(index.php) <?php $temp = "./temp.html"; //このページのテンプレートファイル名パス require_once('./echo.php'); ?> ------------------------------------------------------------------------

    • 締切済み
    • PHP
  • インクルードによる不具合

    PHP初心者です。 以下2つのファイルを使って簡単な接続テストを行ってから徐々に 目的のものを作り上げていこうとしたのですが、どうにもうまく動作しません。(2つは同一ディレクトリにある) ・「mysql.php」:DB接続とSQLの発行 ・「test.php」:ブラウザ出力(本体:mysql.php呼び出し元) 実行すると「*** DB/SQLテスト ***」のみブラウザに出力されるため、試しに「mysql.php」で行うDB接続とSQL発行をすべてtest.phpに直接書いてインクルードせず単体で実行したところ、目的の結果が表示されました。 なので問題はインクルード文にあるのだと思うのですが検討がつきません。 どなたかお力をお貸し下さい。 ちなみに以下のコードは参考にしたテキストの例題をもとに見やすくするため余分な処理やエラー処理などを省いたものです。 ■mysql.php <?php class MySQL{ var $m_con; var $m_rows = 0; function MySQL(){ $this->m_con = mysql_connect("ホスト名", "ユーザ名", "パスワード"); mysql_select_db("データベース名", $this->m_con); } function query($sql){ $this->m_rows = mysql_query($sql, $this->m_con); return $this->m_rows; } } ?> ■test.php <html> <head> <meta http-equive="Content-type" content="text/html; charset=utf-8"> <title>SQLtest</title> </head> <body> *** DB/SQLテスト ***<br> <?php include("mysql.php"); $mysql = new MySQL; $sql = "SELECT * FROM staff"; $mysql->query($sql); while($row = mysql_fetch_array($this->m_rows)){ echo $row["id"]; echo $row["name"]; echo "<br>"; } ?> </body> </html>

    • ベストアンサー
    • PHP