1

絶対ファイルパスを取得する方法php

フォルダー abc と xyz があります。

次のような相対パスを指定して、Ajaxリクエストを使用して、abcのファイルa.phpをxyzフォルダーに含めています。

../a.php

ファイル a.php には、Ajax リクエストを使用して実行されるいくつかのアクションが含まれています。

xyz フォルダーでは、abc フォルダーで実行されるのと同じアクションを実行したいのですが、これらのアクションを実行しようとすると、abc ではなく xyz フォルダーでファイルが検索されるため、xyz で実行したいアクションが機能しません。

これを行う方法を教えてください。

更新されたコード:

$(function(){
    $.ajax({
        type:"POST",
        url: "../xyz/a.php",
        data: {
            "Id": '<?php echo $_GET['Id'];?>'
        },
        success: function(data){
            $("#divId").html(data);
        }
    }); 
});
4

4 に答える 4

3

config/index/bootstrap で次のようにすることをお勧めします。

define('ROOT_DIRECTORY', dirname(__FILE__).'/');

このようにして、他の場所からファイルをロードする必要がある場合は、すべてのパスを ROOT_DIRECTORY からの相対パスにします。例えば:

require_once(ROOT_DIRECTORY . 'abc/xyz.php');

これにより、ファイルのインクルードが非常に簡単になり、「パス」ロジックを壊すことなく、プロジェクト ディレクトリ全体を別の場所 (たとえば、運用サーバー) に移動できます。

あなたのコードの更新を見ると、本当に JavaScript からのリクエストについて話していることがわかります。その場合は、ファイルへの完全な URL を残してください:

乾杯

于 2012-04-12T12:00:56.500 に答える
1

Ajaxリクエストで私はこのようにURLを変更しました

url: location.protocol + "//" + location.host + "projectname/foldername/filename.php"

その後、それは完全に機能しました

于 2012-04-26T11:13:06.887 に答える
1

xyzまず、 fromにファイルを含めたい場合はabc、する必要はあり../abc/a.phpません../a.php(もちろん、ファイルが両方のディレクトリと同じレベルにある場合を除きます)。

次に、相対パスを絶対パスに変換する関数が呼び出され、ここrealpathでドキュメントを見つけることができます。

ディレクトリ構造が次のようなものである場合:

abc/
xyz/
a.php

a.php...次に、ディレクトリの 1 つにあるファイルからの絶対パスを取得するには、次のようにします。

$absolute = realpath('../a.php');
于 2012-04-12T11:51:58.417 に答える