2012-01-31 30 views
7

include_once();のパスを最初のディレクトリから開始し、次にパスを見つける方法を見つけることを試みています。 ../../../path/to/fileの代わりに/path/to/fileがあります。あなたはApacheサーバを使用している場合、私はそれがそのようなファイルやディレクトリは何を言っていない/path/to/fileことを行うのですか場合は、ここで私の直接のコードphp include_once path

<?php 
include_once("/assets/page_assets.php"); 
?> 
+2

'パスの開始:

<?php ini_set('include_path',ini_get('include_path').':../../../:'); ?> 

しかし、陽気なコメントで述べたように、あなたは先頭のスラッシュのないファイルを含める必要があります

ウェブサーバーのルート? '/ path/to/file'はファイルシステムのルートからのパスです! – Cheery

答えて

12

がある

<?php 
include_once($_SERVER['DOCUMENT_ROOT'] . "/assets/page_assets.php"); 
?> 

"/assets/page_assets.php"はないのルートフォルダから、from the root of the diskを意味し、サーバ。 beginning directoryについて話している場合は、別の定数/変数として物理パス(サーバーのファイルシステム内のパス、Webパスではないパス)を定義し、上記のようにインクルードパスの先頭に追加します。

0
今、あなたは include("path/to/file.php");を呼び出すことができ、それがウェブルートから探し始めます chdir($_SERVER['DOCUMENT_ROOT']);

を使用してスクリプトを起動し

1

これを実行するには、ルートからのパスを使用する必要があります。場合によっては/var/www/mysite.com/assets/page_assets.phpのようになります。そのパスを見つける方法の1つは、__FILE__(前後に2つのアンダースコアがあります)を使用することです。それをファイルからエコーすると、完全なパスが表示されます。あなたはそれを使って、正しいフルパスを設定できるはずです。

2

明示的にパスを含める指定することができますからdirectory`最初から

<?php 
include_once("assets/page_assets.php"); 
?>