ベストアンサー include 2002/12/19 16:17 変数定義したincファイルをincludeで読み込むにはどうしたらいいですか? みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー silverjet ベストアンサー率66% (4/6) 2002/12/19 16:30 回答No.1 普通に <? include 'hoge.inc'; ?> でしょうか. 参考URL: http://php.lamphost.net/manual/ja/print/function.include.php 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発PHP 関連するQ&A include先でのinclude元の変数について 度々お世話になっています。 include先でのinclude元の変数の扱いについて疑問に思ったので質問させて下さい。 include元ファイルtest.php include先ファイルinclude.phpとしてtest.php内の変数をinclude.phpに渡したいと考え以下のコードを書きました。 test.php <?php $test = "いけるかな?"; include "include.php"; ?> include.php <?php echo $test; ?> 結果、$testの値を表示する事が出来なかったのですが、$testの値を表示するためにはどのような記述方法があるのでしょうか? また、このような動作を期待している理由としてはPHP部分とHTMLを分離させたいと考えており、ユーザ定義関数に変数を引数として渡して、出力処理をユーザ定義関数内で行うという事も考えたのですが、include先に値を渡す事が出来れば、非常にわかりやすく分離出来ると考えたからです。 他に、PHP部分とHTML部分をファイル分けするやり方などありましたら教えて頂けますとうれしいです。 includeと#include 他の人が書いた拡張子が.aspとなっている ファイルを眺めているのですが、その中に <!-- #include file="./Include/aaa.inc" --> <!-- include file="./Include/bbb.inc" --> という2種類の記述が存在していました。 前者は相対ディレクトリ指定でaaa.incというファイルを 読み込んで処理すると理解しておりますが 後者も同じ動作をするものなのでしょうか? 実行環境が手元にないため試すことも出来ず Net上を検索してもこれといったものが見つかりません。 どなたかご教授お願いします。 phpの(例えば)include phpでwebアプリを作成しています。 例えば、windowsでいうiniファイルに似たようなファイルを作成し、 そのファイルにdbopen情報を持たせてopenしたいのです。 global変数を使うということで、試しているのですが、うまくいきません。 ※postgresqlを使っています。 ・sysparm.inc <?php $inf1="1111"; $inf2="user"; $inf3="pass"; $inf4="name"; ?> ・dbaccess.php <?php include ("./include/sysparm.inc"); $dbinfo = "port=".$inf1 . " user=".$inf2." password=".$inf3." dbname=".$inf4; ・ ・ ・ この$dbinfo 情報でopenしたいのですが、$inf1~$inf4まで何もはいってきません。 こういう場合、dbaccess.phpの $inf1~$inf4 まで”global" をつけるんでしょうか? つけて試したのですが、入ってきませんでした。 この方法は、windows版で言う GetPrivateProfileString・・・の用なことをしたくてたどり着きました。 最初はファイルを読んで、dbアクセス情報を取得していたのですが。。。 結局includeされていないのでしょうか? includeのパスの指定も dirname(__FILE__)."/include/sysparm.inc" のようにしてみてもだめでした。 どんな書き方、使い方が正解なのか、教えていただけないでしょうか? すみません、よろしくお願いいたします。 includeとinclude_onceの使い分け まずマニュアルを。 ------------------------------------------------------ PHP: include_once - Manual http://www.php.net/manual/ja/function.include-once.php include_once 命令は、スクリプトの実行時に指定したファイルを読み込み評価します。この動作は、include 命令と似ていますが、ファイルからのコードが既に読み込まれている場合は、再度読み込まれないという重要な違いがあります。その名が示す通り、ファイルは一度しか読み込まれません。 include_once は、スクリプトの実行時に同じファイルが複数回読み込まれ、評価される可能性がある場合に、関数の再定義や 変数値の再代入といった問題を回避するために一回だけ読み込ませるために使用します。 ------------------------------------------------------ …。表面的な機能の違いはわかりました。しかしそれをどう使い分けるのかの説明はなく、分かりませんでした。 よく分からない点は以下です。 ・同じファイルを何度も「include」もしくは「include_once」するケース ・あえて何度も記述しながら実際には1度しか評価してほしくないケース ・何度も記述して、そのつど評価したいケース これらについて例を挙げて教えていただきたいです。 よろしくお願いします。 includeしたファイルに変数を持ち込むには? hoge.phpでセットした変数を、そのあとにincludeした別ファイルに持ち込むことは出来るのでしょうか? 以下のような処理がしたいと思っているのですが、この状態でhoge.phpを実行すると$a=NULLとして処理されてしまいます。 inc.php <?php if ($a=="値") { //TRUE処理 } else { //FALSE処理 } ?> hoge.php <?php $a = "値"; include "./inc.php"; ?> 【緊急】インクルードファイルに配列変数を使用することができない??? ASPでVBSCRIPTを使っています。 多くのASPで使う部分を共通化して インクルードファイル(.inc)にして それを読み込んでいるのですが、 インクルードファイルに Dim gsAAA と宣言すると、 普通に使えるのに Dim gsAAA(9) とすると使えません。 配列の変数はインクルードにおくことが できず、かならずローカルのASPで 宣言してやらないとダメなのでしょうか? どのASPでも同じ宣言が必要になってきたので。 どなたか、少しでも分かることがあれば 教えて下さい。お願いします。 includeファイルの読み込み追加の際のコインパイルエラー VC初心者で初めて質問させて頂きます。 仕事でVC++6.0にて開発を行っています。 既設で正常に動作しているプロジェクトに対して ロジックを追加しなければいけないのですが、 その際、同プロジェクト内で定義されていない 変数を使用したく、includeファイルの 読み込みを追加(#include "aaa.h")し、参照しようと したのですが、以下のようなコンパイルエラーが 発生してしまいます。 '***' 定義されていない識別子です。 ***:追加したincludeファイル内にて定義されている 変数 紐付けがうまくいってないと思うのですが プロジェクトの設定画面にて、インクルードファイル のパスを確認したところ既設にてパスは存在して いました。 同様に依存関係を確認したところ、必要な ヘッダファイルは全てありました。 関係あるかはわかりませんが、クリーン→ビルド しても状況は変わりませんでした。 パスが通っているなら単純にインクルードファイルを 読みこんで参照すればいいと思うのですが、 何か他に必要なことがあるのでしょうか 初めての質問ということで、質問の仕方が 分かりづらい点もあるかと思いますが 宜しくお願い致します。 smarty上で、動的にファイルをインクルードするには 現在、smartyを使用して、tplファイルを作成しています。 テンプレートファイル内で、条件によって呼び込むファイルを 変更したいのですが、下記のように includeの中で、変数を使う事は出来ないのでしょうか? {include file=$file} requireとincludeどっちを使えばいいのでしょう? 題名にもある通り、便利な関数やdefineで定義した定数などを別ファイルにしてそれをインクルードしたいとき、一般的にはincludeとrequireどちらを使えばよいのでしょうか? また、includeのほうが軽くなるということはあるのでしょうか? マニュアルではincludeは呼び出したときに何度でも呼び出される旨 http://www.php.net/manual/ja/function.include.php かいてありますが、実践でどのようにつかえばよいかわかりません。 どなたか、ヒントでもかまいませんのでおしえていただけないでしょうか? 皆様は、どちらをどのようにお使いになってらっしゃいますか? よろしくお願いいたします。 [ASP]条件によってインクルードしたいファイルを変えたい。 こんばんわ。ASPにてWebページを作っております。 私はこれまで、何度もASPページ内に任意の.incファイルをIncludeして動的なWebページを作ってまいりました。 しかし、いままでは固定の.incファイルをIncludeしてきましたので下記のように、 <!-- #Include File="info.inc" --> 記述していました。 今回は・・・ sample.asp?ID=1 や sample.asp?ID=2 のようにURLに付加されて送信されてくる情報によってIncludeしたいファイルを変更しなければいけません・・・。 この場合はどのように記述してやればいいでしょうか? <% If Request("ID") = "1" Then %> <!-- #Include File="pageA.inc" --> <% ElseIf Request("ID") = "2" Then %> <!-- #Include File="pageB.inc" --> <% End If %> 単純に上のようなことでいいのでしょうか? お手数をお掛けしますが何卒宜しくお願いいたします。 VC++ includeファイルについて VC++2005でグローバル変数を利用したいと考えています。 そこで、kaisu.hというヘッダーファイルにint n=0;と書いてあります。 そこでプログラムでは、 #include "kaisu.h" しているのですが、エラーがどうしても出てしまいます。 エラーは以下の通りなのですがどのようにすれば良いのでしょうか? error LNK2005: "int n" (?n@@$$Q3HA) は既に Form2.obj で定義されています。 場所::試作品.obj エラー 2 fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。 VBに、Cのincludeのようなものありますか? Cでは、 include<ファイル名.h> のように、自作の定義ファイルを読み込み事が出来ますが、 Visual BASICでは、できないでしょうか? #include "****.h"の呼び出し箇所 お世話になります、fujitomoです。 今回お聞きしたいことは、それほど急を要しているわけではなく、フッと疑問に思い、気になったので質問させて頂きました。 質問させて頂きたい事は、Visual C++のプログラムで自分で作成したインクルードファイルを読み出すコード #include "*****.h" を読み出したいプログラム内のソースファイルの一番上に書くべきか、インクルードファイルの一番上に書くべきか ということです。 当然、読み出したいプログラム内でメンバ変数として呼び出したいときなどはインクルードファイルに書きますが、それ以外で、呼び出したインクルードファイル内のある関数を使いたいいった場合です。 どちらにインクルードファイルの呼び出しを記述しても動作しますし、私は前までインクルードファイルの呼び出しはその呼び出したいプログラムのインクルードファイルに書くものだと思っていたのですが、VisualC++のMFCのプログラムなどを見るとソースファイルの一番上に書いています。 どちらでもいいのかもしれませんが、参考となる意見がありましたらよろしくお願い致します。 処理中にincludeされるファイル内で関数化するには? 動的に生成するHTMLで、共通した処理を別ファイルに記述し、 includeして共通化したいのですが、どうもうまくいきません。 解決方法をご教授いただけないでしょうか。 もしくは該当しそうなサイトを教えていただけないでしょうか。 (includeや、関数化についてなどTipsに強いサイト) よろしくお願い致します。 問題点=== === === === === (1)X.asp内で、"01 Call A()"がエラーとなる →2重定義ということでしょうか? (2)X.asp内で、"04 Dim i"が2重定義でエラーとなる →気持ちでは、Privateな変数のつもりなので、2重定義ではないと。 (3)X.asp内で、プライベート関数を定義することは可能かどうか 現状=== === === === === --- ~index.asp~ ----- 01 Sub A() 02 Dim i 03 Dim j 04 <!--#include file ="X.asp" --> 05 End Sub --------------------- --- ~X.asp~ ----- <% 01 Call A() 02 03 Sub A() 04 Dim i 05 06 処理A 07 08 End Sub %> --------------------- HTML #include file について 初心者ですみません>< 使用OS:windowsXP Home Edition 動作環境:自分のPC 1台 HTML文に下記のテスト文を作成したのですが、#includeの"header.inc" ファイルが読み込めないのです。 html文自体は c:\test\test.html に保存しています。 includeファイルは c:\test\INC\header.inc としています。 *** test.html ********************************* <html> <head> <#include file="./INC/header.inc"> </head> <body> <h1>test</h> </body> </html> ******************************************* *** header.inc **************************** <title>Title_TEST</title> ******************************************* 簡単なテスト文なのですが、header.inc の部分が読み込めないので困っています。どこかに必要な設定があるのでしょうか? すみませんがおしえてください。 インクルードファイルが重いのは大丈夫でしょうか? 私はPHPでショッピングサイトを構築しているのですが、そのサイトの全てのファイルに、include.iniファイルをrequireしています。 このinclude.iniの中には、便利な関数や定数定義などを入れています。(だいたい1600行くらい) ところが、某米国のレンタルサーバーを使っているせいか、夜間(特に土曜日)はまったく動かないといっていいほど処理が遅いのです。(たいていタイムアウトになります。) 原因はやっぱりこのインクルードしているファイルが大きいせいでしょうか? それとも安価な(.comドメイン込みで年間5000円くらい)サーバーが原因なのでしょうか? 同じような状態を経験されたことはないでしょうか? ちなみに、データベースはMysqlに接続しています。 includeで読み込んだ内容を変数にいれたい includeで読み込んだファイル内容を変数に格納する方法はありますか? 動的ページをHTMLファイルで出力したいと思っています。 例: if(!file_exists("$file")){ mkdir("$file",0755); } $fp = fopen("$file/index.html","w") flock($fp, LOCK_EX); $hoge = include("./hoge.php"); fputs($fp,'<html>'."\n"); fputs($fp,'$hoge'."\n"); fputs($fp,'</html>'."\n"); この様に、$hogeの中に読み込んだファイルを書き込みたいのですが、 うまくできません。 この様な方法で変数にいれるのは可能でしょうか? 宜しくお願いします。 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のサイトで表示されないのは何が原因でしょうか? includeするファイルの直接呼出しを避けたい phpにて、includeしているファイル(仮にxxx.incとします)を直接URL指定された場合、エラーとしたいのですが、どのような手段がありますでしょうか? includeができない includeでおかしな動きがあり、困っています。 ●ケース1 include ("check.php"); こちらは問題なく稼働します。 ●ケース2 include ("http://xxx.com/check.php"); この書式だと動作しません。 ちなみに、ケース1の場合も、実行ファイル、includeするファイルとも、 http://xxx.com/ 配下に存在しています。 ケース2のように、URL表記で外部ファイルを取り込むようにするには どうすればよろしいのでしょうか? よろしくご指導お願いいたします。