2012-10-25 13 views
6

ローカル開発サーバーからテストサーバー、そしてライブサーバーに移植する必要のあるWebサイトを構築します。我々は、次のサーバーからWebサイトを移動するとPHPはパスに変数を含む

<?php $path = '/_Folder_/_SubFolder_'; ?> 

、アイデアは、単に新しい開発サーバーに改造する$パスの定義を変更することです。このような理由から、私たちは、変数を作成しました。

<?php include('../_includes/_css.php'); ?> 

しかし、私がやろうとしていることにされています:現在、私たちが含ま呼び出すときに、各ページに、私たちは書く私は願っています

<?php include($path.'/_includes/_css.php'); ?> 

私の結果は次のとおりです。

<?php include('/_Folder_/_SubFolder_/_includes/_css.php'); ?> 

私は悲惨に失敗しました。

は警告:含ま[function.include]( /_SubFolder_/_includes/_css.phpは/ フォルダ):ストリームをオープンに失敗しました:Cでそのようなファイルまたはディレクトリ:\プログラムファイル\ Apache Software Foundationの\ Apache2.2 \ htdocsに\ FREEDOM2012_FREEDOM2012_DEFAULT_ \宿泊施設\ゲスト-rooms.phpライン上の15

その他の問題私はまだ呼び出すことによって、変数のソースを含める必要があり、 "../"

<?php include('../_includes/_var.php'); ?> 

誰かがこれをより効率的にやり遂げる方法についての洞察があれば、私は最も感謝します。あなたの時間、忍耐力、そして対応に努力してくれてありがとう。

+0

あなたは 'include()'に入力している文字列を 'echo'しましたか? – Sammitch

+0

あなたはWindowsサーバ上にいるので、スラッシュの代わりにバックスラッシュが必要です。 – jtheman

+0

先頭の '/'を削除するだけです。 – dualed

答えて

2

$ path変数を永久にかつ動的に初期化するのはなぜですか?

のように:PHP 5.3以降で

$path = dirname(__FILE__); 

、あなたはまた、上記と同様の処理を行い__DIR__ショートカットを持っています。

@see:http://www.php.net/manual/en/language.constants.predefined.php

+0

'set_include_path'で使用されます。http://php.net/manual/en/function.set-include-path.phpこれをうまくブートストラップできます。あなたのインクルードに適切な相対パスを持っています。 –

+0

@ Martin Lyneありがとう –

2

あなたが "../" を持っているbecose

<?php include('../_includes/_css.php'); ?> 

から前のディレクトリを表示する必要があります。 "css.php" =/_ * フォルダ * _/サブフォルダ /_includes/_css.phpから、あなたの完全なパスは、その後、あなたは、次のコードを使用したい場合:他の

<?php $path = './_Folder_/_SubFolder_'; 
include($path.'/_includes/_css.php'); ?> 

を最初にファイルへのフルパスを表示してください_css.php