2011-08-24 4 views
2

php 스크립트를 사용하여 php.ini 파일의 경로를 가져 와서이 경로를 변수에 저장할 수 있습니까? 경로를 찾으려면 phpinfo()를 호출 할 수 있지만 많은 정보를 출력하므로 php.ini 파일의 경로와 출력이 필요하지 않습니다. 미리 감사드립니다.php.ini 파일의 경로를 가져오고 저장하십시오.

+0

어떤이가 필요합니까? 처리 중에 스낵이있을 수 있습니다 (예 : ini 파일이 전혀없는 경우 PHP가 잘못된 경로를 표시합니다. –

+0

@Pekka 나는 작업중인 시스템의 특별 정보 블록에 제시해야합니다. 이 시스템은 다른 서버의 다른 클라이언트에서 사용되므로 경로가 다를 수 있습니다. 걸쇠는 나를 두렵게하지 않는다.) – noname

답변

9

확실히 , 당신이하고 싶은 것과 관련된 두 가지 기능이 있습니다. -로드의 php.ini 파일의 경로를 검색

  1. php_ini_loaded_fileDocs : 첫 번째는 정확히 당신이 찾고있는 무엇을, 두 번째는 하나 개 이상의 INI 파일이있을 수있는 더 큰 그림을 보여줍니다.
  2. php_ini_scanned_filesDocs - 추가 ini 디렉토리에서 파싱 된 .ini 파일 목록을 반환합니다.

그 옆에 .user.ini files과의 격차를 마음, 그들은 php_ini_scanned_filesphpinfo에 표시되지 않습니다.

이 명령 줄에서 작동
+1

와우, 나는이 기능들이 존재한다는 것을 결코 알지 못했다 ... 삶을 훨씬 더 쉽게 만든다. – Rijk

+0

매뉴얼이있다. 대단한 것을 찾으십시오 :) – tradyblix

+0

@hakre 감사합니다. 많이 감사합니다. – noname

0

exec ("php -i | grep php.ini")를 사용하여 그 결과를 얻을 수 있습니다. 또는 outputbuffering (ob_start())을 사용하고, phpinfo()를 실행하고, outputbuffer (ob_get_contents())의 내용을 가져 와서 그 preg_match를 검색하여 php.ini 파일을 찾을 수 있습니다 ...

0

, 또한 CGI 위해 일할 수 있습니다

ob_start(); phpinfo(); 
if (preg_match('#>(.+)/php.ini#', ob_get_clean(), $matches)) { 
    echo 'php.ini location: ' . trim($matches[1]) . '/php.ini'; 
} 
관련 문제