0

私はウェブサイトの繰り返し部分を含めるために何を使用するのが良いかを研究しようとしています-php include functionまたはlibrary(Dreamweaverで提供)。

それとも、同じ結果を達成するためのより良い方法が他にありますか?

現時点では、php インクルードと絶対パスを使用しています。サーバーから Web サイトをダウンロードしましたが、サーバーで機能するパスがローカルホストでは機能しないようです。コードを書き直さなくても、両方のサーバーでパスを機能させるために、パスを記述する正しい方法と最善の方法は何でしょうか?

ありがとう

4

4 に答える 4

1

スクリプトの開始時に set_include_path() コマンドを呼び出し、ライブラリへの相対パスを指定できます

http://www.php.net/set_include_path

于 2012-06-01T12:27:54.560 に答える
0

また、この問題を解決する簡単な方法は、ルート内 (通常は index.php ファイル内) から定数を定義することです。

/**Path Environment**/
$root=pathinfo($_SERVER['SCRIPT_FILENAME']);
define ('BASE_FOLDER', basename($root['dirname']));   
define ('SITE_ROOT',    realpath(dirname(__FILE__)));
define ('SITE_URL',    'http://'.$_SERVER['HTTP_HOST'].'/'.BASE_FOLDER); 

次に、スクリプト全体で、Web ルートへの正しいパスを知ることができSITE_URLますSITE_ROOT

したがって、古いインクルードは次のようになります。

include('/srv/www/somesite.com/public_html/somefile.php');

新しいインクルードは次のようinclude(SITE_ROOT.'/somefile.php');になり、Windowsで開発する場合、それに応じてパスが変更されます。

于 2012-06-01T12:35:24.610 に答える
0

ドリーム ウィーバーはライブラリを使用するため、おそらく間違っています ;)

コードが一度だけ含まれていることを確認したい場合は、require_once代わりに使用できます。

絶対パスではなく相対パスを試す

于 2012-06-01T12:28:03.693 に答える