• ベストアンサー
  • すぐに回答を!

PHPのinclude('ファイル名')で指定できてしまうのはなぜ?

お世話になります。 Smartyでテンプレートを用いながらPHPで開発を行っております。 たとえば、あるファイルからSmarty.class.phpをincludeする時 にinclude('Smarty.class.php')でどうやらincludeできている ようなのですが、、なぜ!?なのでしょうか? イメージ的には、include('パス')もしくはphp.iniに設定されている ディレクトリ直下のファイルというイメージなのですが。。 php.iniをのぞいてみるとinclude_pathはコメントアウトされている のですが・・ 疑問です。 ご教授お願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数95
  • ありがとう数2

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

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

私のFedora10でもphp.iniでは設定されてないんですが確認すると .:/usr/share/pear:/usr/share/php ってなってるんですよね デフォルトの設定なんでしょうかね あと追加のiniファイルも指定できたりします Fedoraでは/etc/php.d/~.iniが読み込まれます

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • smartyの設定 include?path以下の設定がわからない

    独学でPHPを学んでいます。 PHPの基本はひととおり理解はできました。 開発環境・最新のXAMPP導入。 windows、OSはVISTA smartyをインストールしましたが、その設定につまずいています。 Smarty.class.phpが存在するパス(D:\xampp\libs)をphp.iniファイル447行目を下記のように設定しましたが、うまくいきません include_path=D:\xampp\libs\ xamppフォルダの下にlibsフォルダを入れたので上のパス指定で問題ないと思うのですが、どこが間違っているのでしょうか。 ちなみに、libs以下の\も不要だろうと思い、消したりして試してみましたが、結果は同じ。下記のように表示がなされます。 Warning: require_once(local/xampp/libs/Smarty.class.php) [function.require-once]: failed to open stream: No such file or directory in D:\xampp\htdocs\lesson\smarty1.php on line 3 Fatal error: require_once() [function.require]: Failed opening required 'local/xampp/libs/Smarty.class.php' (include_path='.;D:\xampp\php\pear\') in D:\xampp\htdocs\lesson\smarty1.php on line 3 上の文章ですが、3行目後半”Smarty.class.php' (include_path='.;D:\xampp\php\pear\')”の部分ですが、php.iniからinclude_pathを変更したりしているのですが、一向に表示が変わりません。 もしかしたらphp.iniファイルは二つあったりするのでしょうか。 php.iniのファイルはPHPフォルダに入っているものでよろしいですよね? もちろんアパッチは再起動させています。 なのにできません・ あと、ロジックファイルの require _once()の()内はSmarty.class.phpだけでもよろしいのでしょうか。 もう悩みすぎて頭がおかしくなりそうですね。 ちなみにsmartyがなくても、アプリケーション開発に支障はありませんでしょうか。 あくまで個人で趣味の範囲でアプリケーションを作成したいと感じています。

    • ベストアンサー
    • PHP
  • php.iniのinclude_pathのデフォル

    php.iniのinclude_pathのデフォルト値にたいして質問です。 現在PHP 5.6.6 をremi-56のリポジトリから、centos6にインストールしました。 そして、phpinfoを確認すると、 「include_path」の欄に「.:/usr/share/pear:/usr/share/php」とありました。 しかし、「php.ini」の中を検索しても、include_pathは、「;include_path = ".:/php/includes"」などのようにすべてコメントアウトされていました。 phpインフォをみたとき、include_pathに「「.:/usr/share/pear:/usr/share/php」が設定されているのは、デフォルトで決まった値なのでしょうか? どこか、設定ファイルにその値がかかれたりしているのでしょうか? httpd.confを検索しても、phpのパスを設定している様子もなく、.htaccessなども設置してないので、一体このデフォルト値はどこから来てるのか不思議です。 分かる方いましたら教えてもらえないでしょうか?

    • ベストアンサー
    • PHP
  • php_value include_pathを無効

    php_value include_pathを、あるディレクトリ以下では、無効にしたいのですが、 どうすればよいでしょうか? ■前提 ・サイト全体は、「.htaccess」に「php_value include_path」を書いて制御 ■やりたいこと ・ある特定ディレクトリ「hoge」以下では、「php_value include_path」ではなく、 PHPに直接書いた「require_once './★★/●●';」を利用したい ・つまり、設定ファイル「.htaccess」に記述した中のある一部分(特定ディレクトリ以下)だけは、「PHPソースに記述」したincludeパスを使いたい ■試してみてダメだってこと ・「hoge」に「.htaccess」を設置し、空の「php_value include_path=""」と書いてみたけど、うまくいきませんでした

    • ベストアンサー
    • PHP

その他の回答 (2)

  • 回答No.3

phpinfo(); 上記関数を叩くと、現在動作しているPHPの環境が表示されると思いますが、これの 「Loaded Configuration File」 の項目で、実際に使用されているphp.iniのパスが表示されます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 しかし、php.ini以外でincludeのパスが指定されている ようなのですが。。どんなファイルに書かれているのでしょう? お分かりになる方はいませんでしょうか?

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

別の場所で設定されてたりするので <?php echo get_include_path(); で確認してみては

共感・感謝の気持ちを伝えよう!

質問者からのお礼

別の場所で? どんな場所があるのですか? 参考までに教えていただけませんか?

関連するQ&A

  • Smartyのテンプレートにincludeしたファイルを表示したいので

    Smartyのテンプレートにincludeしたファイルを表示したいのですが、うまくいきません。 具体的には、意図しない数値が入ってしまいます。 どうすればよいのでしょうか? ■呼び出す側 require("../../libs/Smarty.class.php"); require_once('../../lib/set_include_path.php'); $header = include("header.php"); $smarty = new Smarty(); $smarty->assign("header",$header); $smarty->display("date.html"); ■テンプレート <body> {$header}<br>日付<br> ■表示例 include("header.php"); の内容が正常表示 1 日付 include("header.php"); の内容が正常表示された後、勝手に「1」と表示されるので、困ってます。表示されないようにするにはどうすればよいでしょうか。 var_dump($header);ってしたところ、int(1) ってなるので、この1が表示されているのかと思うのですが、なんで表示されるのか、表示されないようにするにはどうすればよいか、教えてください。

    • ベストアンサー
    • PHP
  • PHP maple導入時の設定

    1週間前までjavaしか触ったことのなかった私ですが、PHPの案件が回ってきて急遽PHP + Smarty + Maple環境下でシステム構築をすることになりました。実行環境としてjavaのときから使用していたEclipseでPHPとSamrtyを使いビジネスロジックとデザイン部を分けて簡単なアプリを作成することには成功しました。 そして、いざMaple!と意気込んでMaple wikiを見ながら設定をしていたのですが、ひとつ気になることがあったので質問させていただきます。 <設定項目 PHPのインクルードパス変更> インクルードパスについてはPHPインストール時から何度も触っていたので、php.iniをいじるのは容易に理解できたのですが、以下のように書いてありました。 ~Mapleの格納ディレクトリとSmartyをインクルードパスに加えます。~ php_value include_path /usr/local/apache2/phplib:/usr/local/apache2/phplib/smarty 一番最初の「php_value」という部分なのですが、デフォルトではそんな記述はありません。最初から存在するinclude_pathの前に「php_value」を追加すればいいのか、それともinclude_path項目以外にphp_value include_path項目を追加しなければいけないのか、はたまたそれ以外か・・・初歩的な問題ですが、なにぶん時間がないので質問させていただきました。 おわかりの方いらっしゃいましたら、ご教授くださいますようよろしくお願いします。

    • 締切済み
    • PHP
  • require_once()でファイルが読み込めません

    すいません、色々やったみたのですがよく分からなかったので教えてください。 PHPのテンプレートのSmartyを使いたいと思い、公式サイトからダウンロードして/usr/local/lib/php/Smartyにコピーしました。 その後、php.iniのinclude_pathにて".:/usr/local/lib/php/Smarty"と設定し、require_once("Smarty.class.php");としたのですが、 failed to open stream: No such file or directoryや Failed opening required 'Smarty.class.php' というエラーが出て読み込めません。また、phpinfo()を見る限りではphp.iniはきちんと読みにいっているようでした。 ためしに/usr/にSmartyを置き、include_pathもそのように変更してみたのですが読み込めません。カレントディレクトリに配置した場合は上手く読み込めました。また、Smartyでなくてもどのファイルでも読み込めない状況です。 環境はFedora6、Apache2.0、PHP5です。何かアドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • SMARTYの設置に関して

    お世話になっております。題名にある「SMARTYの設置に関して」質問させて頂きます。 色々と調べ、現在、SMARTYをDLしたものを解凍しPHPディレクトリ内に設置(libsディレクトリ内にある各ファイルは、SMARTYディレクトリ直下に移動)し、php.iniのinclude_pathも下記のように設定しました。 .;c:\php\includes;c:\php\PEAR;c:\php\Smarty が、各サイトで紹介されているファイルを確認してみても期待しているような表示が出てきません。 以上、きちんとインストール(および設定)が出来ていないのかな?と不安になり質問させていただいた次第ですが、動作確認をする方法をお教えいただければ幸いに思っております。 お忙しい中恐縮ですが、宜しくお願い申し上げます。

    • 締切済み
    • PHP
  • さくらにsmartyをセットアップする

    http://www.mogutan-blog.com/?eid=283 さくらサーバーと格闘しています。 上記ブログやその他ブログを見ながらパスは通りましたが、やりたい方法とちがうので改めてこちらでお聞きします。 私の方法 1.smartyをwww以下にアップ 2.アップしたフォルダをlibsと改名 3.index.phpでrequire_once '../libs/smarty/Smarty.class.php'; としてokでした。 しかし、php.iniを使って、 require_once './Smarty.class.php'; とパスを編集するには、php.iniをどのように書けばよろしいでしょうか? 現在は、include_path=".:/home/アカウント名/libs/" としており、どのように書けばパスが通るでしょうか? ちなみに簡略フォルダー展開ですが、 ルート ├ libs(smarty)- Smarty - Smarty.class.php ├ php.ini ├ www ┬ index.php     

    • ベストアンサー
    • PHP
  • php.iniに関して

    お世話になっております。 質問ばかりで恐縮ですが(汗)、コマンドプロンプトからPEARをインストールし、php.iniにてincludeを確認したところ、下記のように変更されておりました。 ;***** Added by go-pear include_path=".;C:\php\pear;c:/php/includes;c:/php/pear;c:\php\Smarty\libs" ;***** linuxでは、パスを/で。winの場合は、\で。と説明がなされているのを見かけることがありますが、上記の設定のうち、可笑しなところはありますでしょうか? つい先日までは、PHPのみの設定でしたが、そのPHPは、/でパス設定されているもので・・・今のところ不具合(PEARもSmartyも動かす段階ではありませんが)はありませんが、新たに設定を追加している段階で、不安を解消するために質問させて頂きました。 ご教授いただけたら幸いです。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • さくらインターネットにてsmartyをPHP.iniをインクルードすると別の箇所で不具合が発生しました

    さくらインターネットにてsmartyをPHP.iniをインクルードすると別の箇所で不具合が発生しました さくらインターネットにてsmartyをPHP.iniをインクルードしたら正常動作していたphpファイルがエラーになりました。 タイトル通りなんですが、 さくらインターネットにてsmartyをPHP.iniをインクルードしたら正常動作していたphpファイルがエラーになりました。 php.ini内にて include_path=".:/home/ユーザー名/smarty" と設定し ソース.php内で require_once'DB.php'; を書き込むとエラーになってしまいます。 php.ini内にて include_path=".:/home/ユーザー名/smarty" と設定しなければちゃんと表示されます。 phpinfo()で .:/home/ユーザー名/smarty と .:/usr/local/bin/php が表示されていれば問題無いと思い、色々設定しましたが全てアウトでした。 smartyをphp.ini内にてインクルードしたのが原因だと思われるのですが、元々あったphpのコマンドパス /usr/local/bin/php がインクルードにより反映されなくなったのが原因だと思うのですが、 1ヶ月経っても分からず縋る思いで書き込みました。 何卒宜しく御願いします。 参考 http://support.sakura.ad.jp/support/manual/rs/tech_cgi.shtml

    • ベストアンサー
    • PHP
  • レンタルサーバーへのSmartyのインストールができない。。。

    宜しくお願いします。 レンタルサーバーへ、Smartyをインストールしようと試みているのですが、 初心者のためうまくいきません。 書籍を頼りに、ローカル環境ではいろいろと勉強を積めたのですが、 本番環境になるとだめです。 具体的な質問内容は、 php.iniへ、インクルードパスの追加がうまくいかず、 set_include_path('/***/***/php/libs:' . get_include_path()); とするそうなのですが、 *** の部分の指定がおかしい気がします。 この部分は、Smartyの"Smarty.class.php"スクリプトが存在するディレクトリへのパスを記述するそうですが、 どういう風にそのパスを記述したらいいのでしょうか? つまり、「ドメイン/php/libs/」とドメインをいれたりするのか、 もしくは、phpinfo() 内に何かヒントがるのか、 ・・・ 。 ちなみにですが、FTPで転送したSmarty.class.php が格納されているlibsフォルダは、 ルートディレクト/php/libs/ となります。 サーバー会社は、ドメインキーパーのブルーブロックを使用しています。 http://www.blueblock.jp/index.html

    • 締切済み
    • PHP
  • xampp phpエラーについてです。

    PHP初心者ですがご回答宜しくお願い致します。 xamppをインストールした後、smartyをインストールし、「php.ini」ファイルをinclude_path = ".;d:&#165;php&#165;includes"からinclude_path = ".;C:\xampp\php\includes;C:&#165;Smarty&#165;libs"に書き換えて保存。その後xamppコントロールパネルからapacheとmysqlを起動させるとphpエラーとして syntax error, unexpected TC_LABEL, expecting '=' in C:\xampp\php\php.ini on line 1 とエラーが出ました。 調べてみましたがわかりませんでした・・・。 原因解明の手掛かりでもお教え頂きたく思います。 因みに、環境はOS Windows7 xampp、smartyは現在最新のものです。 ファイルを書き換える前は普通に作動してました。 お手数ですが、何卒よろしくお願い致します。

    • 締切済み
    • PHP
  • Smarty includeでテンプレートを読み込めない

    よろしくお願いします。 まずphpファイルから $smarty->display('111/body.tpl');(*111はディレクトリ名) を呼び出して、さらにbody.tplと同ディレクトリにあるcontents.tplを読み込もうとしています。 はじめのbody.tplは読み込むことができブラウザで表示されるのですが、contents.tplは読み込めず、 Warning: Smarty error: unable to read resource: "contents.tpl" in <絶対パス>/Smarty/Smarty.class.php on line 1095 のエラーが出てしまいます。 ちなみに/111/というディレクトリは、$template_dir以下、$template_dir/111/です。 {include file="contents.tpl"} {include file="file:contents.tpl"} {include file="絶対パス/contents.tpl"} {include file="file:絶対パス/contents.tpl"} など試しましたが、ダメでした。 知恵をお貸しください。よろしくお願いします。

    • ベストアンサー
    • PHP