include_pathを設定して、どのディレクトリからも用意にphpをインクルードできるようにしたいのですが、.htaccessへの書き方やパスの書き方があまりにもわからないので質問させていただきました。
PHPの勉強を始めたのは最近で、私の知っているパスはこれだけ。
1 http://~から始まる絶対URI?パス?
2 ./ とか ../ などの相対パス。
の2つだけ。
include_pathについて、検索エンジンで調べるとほとんどのサイトで次のように書いてありまして、私にはよく分かりません。
php_value include_path ".:/usr/local/lib/php"
まず、include_pathの書き方はこのようで良いというのはわかりましたが、/ から始まっているので、httpなくていいの?..なのか.なのかどっちなのかもわからない、初めて目にしたもので……。
PHPの勉強をしていると、よく/から始まるURLをみるのですが、これについて説明しているところが見当たらず、当り前の知識のような感じなのでしょうか?
これらについて、教えてください。
No.1ベストアンサー
- 回答日時:
たくさん説明どころがあって悩ましいですね。
(笑まず、ご自分でもなんとなく気づいている感じですが、
URLとパスは別のものだと考えてしまった方がよいと思います。
URLはインターネット上の場所を示します。
パスというときは一般に、そのマシン内にあるファイルやディレクトリの場所を示します。
次に絶対と相対の違いについて。
絶対URLや絶対パスは、省略なしで場所を示すことをいいます。
相対URLや相対パスは、現在の自分の場所から相対的に場所を示すことをいいます。
URLならば、http://で始まっていると、省略なしの絶対URLになります。
パスの場合、/から始まっていると、省略なしの絶対パスになります。
相対についてはパスの場合だけ説明してみましょう。
まず、動かしたいPHPのスクリプトが/home/sample/test.phpにあるとしましょう。
このとき、/home/sample/hoge/以下にあるphpファイルをインクルードするためには、
以下のように記述すればよいはずです。
php_value include_path "hoge"
これがスクリプトの位置から見た相対パス指定です。
相対パスの書き方にはいくつか特殊なものがあって、
自分がいるディレクトリを示すときには「.」もしくは「./」、
自分がいるディレクトリの親ディレクトリを示すときには「..」もしくは「../」
と書くことになっています。
上記のスクリプトの例でいうと、「..」は/homeディレクトリを指すことになります。
あと、Linux系の設定では、複数のパスを同時に指定する場合に、
「:」で区切る場合が多いので、include_pathでも同様なのだと思います。
ありがとうございます。問題解決です。
php_value include_path ".:/hoge"
と書いていたのを、
php_value include_path "hoge"
と書くことによって解決しました。
パスに関するいろいろも完全に理解することができました。本当にありがとうございます。
最後にひとつ疑問が残ったんですが、インクルードパスの書き方について、momenlaraさんに教えてもらった通りに書いたらうまく行ったのですが、他のサイトで調べたりすると次のように書けと書いていることがほとんどです。
php_value include_path ".:/usr/local/lib/php:/html/_incs_"
これはこのサイトに書いてありました。
http://www.shigeweb.jp/php/project_p/?section=se …
しかし、.:を抜くことでうまくインクルードすることができました。
これはどういうことなのでしょうか……。
No.2
- 回答日時:
>php_value include_path ".:/hoge"
>と書いていたのを、
>php_value include_path "hoge"
>と書くことによって解決しました。
とのことなので、「.:」を抜くことでうまくいったのではなくて、
「/hoge」の「/」を抜くことでうまくいったのではないかと思います。
ためしに以下の記述でもやってみてください。
php_value include_path ".:hoge"
この指定だと、「.」と「hoge」のどちらかでインクルードファイルが見つかれば、
正しく動くはずです。
これで問題なく動いたら、以下も試してみてください。
php_value include_path ".:/usr/local/lib/php:/html/_incs_:hoge"
よくある設定に、今回、自分が設定したいディレクトリを追加しています。
あ、なるほど……。いろいろとごちゃごちゃとしていまい勘違いしてしまいました。良く分かりました!
すごく分かりやすい解説をありがとうございます。
一週間ほどこれについて悩んでいたので、声を出して喜びました!
今回はどうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
- CGI -T(汚染モード)でメールが送れません 1 2022/06/12 14:11
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- PHP PHP ページング データベース 1 2022/06/16 10:30
- Ruby Ruby / passenger のインストールについて 1 2023/01/30 18:31
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CFileDialogの最初のディレクト...
-
バッチを用いたフォルダの自動移動
-
Visual C++ 2005 Express Editi...
-
makefile でファイルをコピーす...
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
コマンドプロンプトを指定のデ...
-
VB2008でFTPでのディ...
-
図に示す階層構造で,現在のデ...
-
Matlab 指定したディレクトリ...
-
変数のなかみを辿る方法(Python)
-
Subversionで、ファイルをリネ...
-
visualstudioでc#のdllができない
-
ファイル・ディレクトリ削除を...
-
fopenでファイルが開かない場合...
-
str ! = NULL
-
JAVA内で複数のファイルを削除...
-
execコマンドについて
-
filemtimeについて
-
MkDir関数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
バッチを用いたフォルダの自動移動
-
CFileDialogの最初のディレクト...
-
現在位置より2つ上のディレク...
-
Subversionのリポジトリの削除
-
fopenでファイルが開かない場合...
-
makefile でファイルをコピーす...
-
VB.NET 最下位のディレクトリ名...
-
rmdirでフォルダが消せません
-
visualstudioでc#のdllができない
-
ファイルアップロードに関して...
-
絶対パス?絶対アドレス?意味...
-
MkDir関数
-
拡張子を隠すのは良い事なので...
-
Subversionで、ファイルをリネ...
-
powershell で書いたプログラム...
-
コマンドプロンプトを指定のデ...
-
ファイル選択ダイアログで選択...
-
aspのページが表示できません
-
JAVA内で複数のファイルを削除...
おすすめ情報