파일 - php란




PHP에서 내 URL의 "응용 프로그램 루트"를 얻으려면 어떻게합니까? (4)

비슷한 문제가 발생했습니다. 기본적으로 PHP에서 'A.php'파일이 상대 경로를 사용하여 리소스를 참조하는 경우 상대 경로의 접두사로 사용되는 현재 경로 위치는 'A.php'가 포함 된 최상위 상위 PHP입니다.

A.php 자체가 상위 상위이거나 A.php가 최상위 상위 폴더와 동일한 폴더에있는 경우 문제가되지 않습니다. 그러나 그렇지 않으면 수입을 깨뜨릴 것입니다.

내가 찾은 최선의 해결책은 DIR (파일의 현재 위치를 알려주는)을 사용하여 명시 적으로 참조를 절대적으로 만드는 것이고, 예를 들어 DIR에 대해이 위치에서 참조 할 것이다. "/../help.php"를 참조한다. A.help보다 1 단계 위에 앉아있는 파일 help.php.

내 URL이 http://www.server.com/myapp/stuff/to/see 이고 디스크의 디렉토리 구조가 htdocs/myapp/* 경우 어떻게 /myapp 부분을 ​​추출 할 수 있습니까? 또한 응용 프로그램 폴더가없고 응용 프로그램 루트가 '/'이면 어떻게됩니까? 그 값을 얻기위한 미리 정의 된 변수가 있습니까?

내가 원하는 것은 요청 URI의 /myapp 을 다듬을 수있는 함수이다. 그래서 나는 /stuff/to/see 만 남았다. 그리고 만약 애플리케이션을 서버 문서 루트로 옮기고 싶다면 /stuff/to/see/stuff/to/see 로 리턴되도록 애플리케이션을 결정해야한다.

내 디렉토리 구조는 다음과 같습니다.

application
  |-config
    |-config.inc.php
library
  |-autoload.class.php
public
  |-css
  |-img
index.php

그래서, index.php에서, 내가 위에 물어 보는 것을 얻는 방법을 알고 싶습니다.


이 시도:

 echo dirname(__FILE__);

여기서 __FILE__ 은 현재 실행중인 스크립트의 이름이고 dirname 은 폴더 / 응용 프로그램 폴더를 가져옵니다.

기타 옵션 :

echo $_SERVER['DOCUMENT_ROOT']; // gives you the root dir

PHP.net에서


http://www.server.com/myapp/stuff/to/see 사용하여 페이지에 액세스하고 웹 서버의 문서 루트가 /something/htdocs/ 현재 local 경로는 /something/htdocs/myapp/stuff/to/see .

get /something/htdocs/myapp/ 결과를 얻는 확실한 해결책은 없습니다. 왜냐하면 어떤 경로를 가져야하는지 명확한 정의가 없기 때문입니다. 이를위한 몇 가지 규칙이있을 때 알려 주면 무언가를 생각해 낼 수도 있지만 계산이 없으면 볼 수있는 유일한 경로는 다음과 같습니다.

  • http://www.server.com/myapp/stuff/to/see
    $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
  • /something/htdocs/myapp/stuff/to/see/index.php
    $_SERVER['SCRIPT_FILENAME']
  • /something/htdocs/
    $_SERVER['DOCUMENT_ROOT']
  • /myapp/stuff/to/see
    $_SERVER['REQUEST_URI']
  • /myapp/stuff/to/see/index.php
    $_SERVER['SCRIPT_NAME'] 와 (과) $_SERVER['PHP_SELF']

웹 루트 의 경우 여러 답변에서 지적한 DOCUMENT_ROOT 가 있습니다. 응용 프로그램 루트의 경우 시스템에서 응용 프로그램의 어떤 폴더가 루트 폴더인지 알 수있는 방법이 없습니다. 수동으로 설정해야합니다.

대부분의 응용 프로그램은 dirname(__FILE__); 사용하여 응용 프로그램 루트를 정의합니다 dirname(__FILE__); 또는 구성 설정을 저장하고 응용 프로그램 전체에서 사용할 수있는 상수에 저장합니다.





php