0

PHPで定義された絶対パスに問題があります。私はそのように定義します SITE_ROOT APP_PATH

defined('SITE_ROOT') ? null : 
define('SITE_ROOT', str_replace('//','/',dirname(__FILE__)) );

defined('APP_PATH') ? null : define('APP_PATH', SITE_ROOT.DS.'application');

APP_PATHこのようなアプリケーションでを使用する場合:

echo APP_PATH;

...これは私が得るものです

/Users/user/Sites/MyWebsite/application

私が欲しいのは、出力を次のようにすることです。

localhost/application

これを行うための厄介でない方法はありますか?

私のユースケースは、HTMLでエコーアウトされたAPP_PATH(すべての'を実行するためにすでに使用されている)を使用して、 require()'のURL内の相対的なパスの問題を回避することhrefです。

4

2 に答える 2

1

定数にはファイルパスが含まれ、それ以外は__FILE__含まれません。スクリプトを呼び出すために使用されたURLを確認して$_SERVER['REQUEST_URI']ください$_SERVER['HTTP_HOST']。これは、PHPスクリプト(Apacheなど)を開始したWebサーバーによって提供される必要のある環境情報であり、PHPが本質的に知っているものではありません。

于 2010-10-06T06:27:30.373 に答える
0

私はあなたが使うことができると考えるのは間違っていますか?

$path = str_replace("/Users/user/Sites/MyWebsite", "localhost",$appPath);
echo($path);
//returns: localhost/application

批判を歓迎します。

于 2016-03-22T10:16:43.130 に答える