3

PHP5.2.11がプリインストールされたMacOSX10.5.8を実行しています。Coda1.6.10を使用します。

PHPファイルを作成し、サーバーではなくファイルから実行してプレビューします。PHPインクルードを試すまで、これは正常に機能していました。これらは相対パスとしては機能せず、ドライブのルートからの絶対パスとしてのみ機能します。

次のようなステートメントを使用する方法はありますか

include_once "common / header.php";

次のようにファイルパス全体を指定せずに:

include_once "/Volumes/Macintosh HD / Users / neil / Desktop / Website / ColoredLists_v1.0 / common / base.php";

ここで、ColoredLists_v1.0は、すべてのWebサイトファイルが含まれるディレクトリです。ファイルパスに_SERVER[DOCUMENT_ROOT]やdirname(File)を追加するなどの解決策を試しましたが、変数が設定されていないため、機能しませんでした。これを行う簡単な方法はありますか、またはドライブルートではなくデフォルトで特定のディレクトリを検索するように構成を変更できますか?現在、echo_include_pathは。を示しています。

スクリプトの先頭にこの行を含めると、次のように機能します。

set_include_path('/ Volumes / Macintosh HD / Users / neil / Desktop / Website / ColoredLists_v1.0');

ただし、すべてのスクリプトに対してこれを実行したい場合、変更を永続的にすることはできないようです。php.iniでUnixinclude_pathを編集した後でも、機能していないようです。

更新:私は最終的に、Apacheサーバーをローカルで実行するのが最も簡単な確実な方法であると判断しました。Macがプリインストールされているので、それほど問題はありませんでした。ローカルホストからの接続のみを許可するようにhttpd.confを変更したため、セキュリティ上の懸念が軽減されました。もちろん、これでもポート80は開きますが、私はルーターの後ろにいるので、あまり露出されていないことを願っています。また、Codaの「サイト」には、ローカルURLを設定できる優れた機能が含まれているため、見事に機能するようになりました。唯一の欠点は、コードを編集した後、プレビューを手動で更新する必要があることです。

4

4 に答える 4

2

この方法を試すことができます。

require_once(dirname(__FILE__) . '/example.php');
于 2010-03-13T19:44:42.300 に答える
0

これは私にとって毎回機能します:

<?php require_once($_SERVER['DOCUMENT_ROOT'] . '/common/header.php'); ?>

于 2011-04-22T16:37:27.267 に答える
0

試す

set_include_path(
    '/Volumes/Macintosh HD/Users/neil/Desktop/Website/ColoredLists_v1.0' .
    PATH_SEPARATOR . 
    get_include_path());

共有インクルードファイル内

または、php.iniを編集して、include_path変数を変更します(私はMAMPを使用しているため、php.iniへの正確なパスを教えられません)

于 2010-03-13T20:18:36.933 に答える
0

これは本当にinclude_pathの問題です。デフォルトは.:/usr/lib/php;のようです。おそらく、スクリプトが含まれているディレクトリからPHPコマンドを起動した場合、それで問題ありませんか?

于 2010-03-16T20:23:01.600 に答える