>  기사  >  백엔드 개발  >  PHP에서 구성 파일 php.ini를 구문 분석합니다.

PHP에서 구성 파일 php.ini를 구문 분석합니다.

WBOY
WBOY원래의
2016-08-08 09:33:40953검색

PHP를 좋아하는 사람이라면 누구나 PHP.INI 파일에 대해 잘 알고 있을 것입니다. PHP의 이전 버전인 PHP3.0에서는 이름이 PHP3.INI였습니다. 파일은 일반적으로 운영 체제의 Windows 디렉터리에 있습니다. PHP.INI 파일에는 Windows 시스템과 마찬가지로 세미콜론이 많이 있다는 것을 모두가 알고 있습니다. 즉, 구성 파일을 명확하고 이해하기 쉽게 만들기 위해 이러한 세미콜론이 사용됩니다. 개발자는 세미콜론 뒤에 각 세미콜론이 표시됩니다. 구성 기능은 간략하게 설명되며 이러한 주석 줄은 시스템 처리 중에 무시됩니다. 물론 또 다른 이점은 PHP 시스템 구성이 변경될 때 특정 줄에 주석을 추가하거나 제거할 수 있다는 점입니다. 이는 간단하고 편리합니다.
편의.

auto_PRepend_file 문자열은 모든 PHP 파일을 읽기 전에 자동으로 구문 분석하고 실행하도록 파일을 지정할 수 있습니다. 이는 PHP, ASP, HTML 등의 모든 파일일 수 있으며(이미지 파일은 제외) 특별한 상황에서 매우 유용합니다. 예를 들어, 각 PHP 페이지에 광고를 추가하고 웹사이트를 개발 중이며 모든 방문자가 PHP 페이지를 읽기 전에 인증하도록 하려면 인증 코드를 별도의 파일로 만든 다음 문자열을 설정하면 됩니다. 여기에 파일 이름을 추가하세요. 주의 깊은 독자는 다음과 같이 질문해야 합니다. 특정 파일에만 이러한 기능이 필요한 경우 어떻게 해야 합니까? 예를 들면 다음과 같습니다.

​myprefix.php 파일
​if (strstr(strtoupper(PHP_SELF),"/PHPTEST/"))
echo "내 광고!
"; ​?>
이런 식으로 auto_prepend_file="myprefix.php"를 설정하면 phptest 디렉토리의 모든 PHP 파일에 광고 헤더가 포함됩니다! 또한 이 파일은 include_path가 가리키는 경로에 있어야 하며, 그렇지 않으면 아래에서 언급할 오류가 발생할 수 있습니다.

​auto_append_file 문자열은 PHP 파일 끝에 자동으로 추가된다는 점과 PHP 프로그램이 종료()로 종료될 때 작동하지 않는다는 점을 제외하면 위와 비슷한 기능을 합니다. 이 기능을 사용하면 회사 주소에 각주를 쉽게 추가할 수 있습니다!

include_path string 이 매개변수의 기능은 include(), require() 및 기타 함수가 여기에 정의된 경로에서 파일을 찾도록 하는 것입니다. DOS 시대에 사용된 SET PATH 명령과 약간 비슷합니까? 이 매개변수는 경로 목록을 제공할 수 있지만 경로는 UNIX에서는 콜론, NT에서는 세미콜론으로 구분되며 슬래시 방향도 다릅니다. 예:
UNIX 예: include_path=.:/home/lib
NT 예: include_path=".:c:homeib" 여기서 "."는 현재 디렉터리를 나타냅니다.
gpc_order 문자열

GPC는 GET/POST/COOKIE 세 변수의 첫 글자입니다. 그 순서는 세 변수를 처리하는 시스템의 우선순위를 반영합니다. 왼쪽에서 오른쪽으로 우선순위가 높아집니다. 기본 설정은 GPC이므로 동일한 이름을 가진 2~3개의 변수가 서버에 전달되면 시스템은 이를 우선 순위에 따라 정렬하고 우선 순위가 더 높은 변수만 읽습니다. 또 다른 예는 쿠키를 무시하고 액세스 방법이 동일한 경우 GET 대신 POST를 사용하도록 "GP"로 설정하는 것입니다. 물론 프로그래밍 과정에서 동시에 같은 이름을 가진 변수를 다른 방식으로 전달하는 것을 피해야 합니다. 그렇지 않으면 프로그램의 가독성이 떨어지고 구성이 다른 시스템에서 출력 결과가 다를 수 있습니다.

Magic_quotes_gpc boolean 이 매개변수는 GET/POST/COOKIE의 세 가지 변수에 포함된 특수 문자인 작은 따옴표, 큰 따옴표, 슬래시, 이스케이프 문자 백슬래시(C 언어에서 일반적으로 사용되는 "") 추가 여부를 결정할 수 있습니다. PHP 데이터베이스와 같은 시스템에서 작은따옴표와 같은 문자는 일반적으로 실제 문자와 구별하기 위해 Magic_quotes_gpc=on을 설정하여 사용자 측에서 가져온 변수에 작은따옴표가 있는 경우가 있습니다. , 이스케이프 문자 앞에 추가되고 필요에 따라 기능을 사용할 수 있습니다. (이 함수는 문자열에서 백슬래시 이스케이프 문자 ""를 제거할 수 있습니다. 두 개의 연속 백슬래시가 있으면 하나를 제거하십시오 백슬래시가 하나만 있으면 제거하세요.) 이스케이프 문자 ""를 제거하려면 다음을 비교할 수 있습니다.


​<입력 유형="제출"> 에코
​?>
​​magic_quotes_gpc=on, off일 때 각각 텍스트 상자에 작은따옴표와 큰따옴표를 입력하고 제출하여 어떤 차이가 있는지 확인해볼까요?

SMTP 문자열은 메일 전송 서버의 도메인 이름이나 IP 주소를 지정하므로 Microsoft ASP에 비해 PHP의 이 기능은 훨씬 간단하고 편리합니다. 메일 서버가 있습니까? 매우 간단합니다. 로컬 ISP의 메일 서버만 입력하면 됩니다. 실제로 메일을 보내고 받는 서버는 우리 현실의 우체국과 같습니다. 메일은 어느 우체국에서나 보낼 수 있지만, 메일은 고정된 우체국에서 받습니다.

​MySQL.default_host 문자열
mysql.default_user 문자열
mysql.default_passWord 문자열

ODBC를 사용해 본 독자라면 ODBC를 설정할 때 항상 데이터베이스 위치와 기본 로그인 사용자 이름 및 비밀번호를 설정해야 한다는 것을 알고 있습니다. 이러한 매개변수는 동일한 의미를 갖지만 MYSQL에서 사용됩니다. 보안을 위해 MYSQL에서는 사용자 권한을 일부 제한해야 합니다. 게으르지 말고 "root"를 사용하세요! 편의를 위해 이러한 매개변수가 설정된 경우 mysql_connect() 함수를 직접 사용하여 데이터베이스에 연결할 수 있습니다. 여기서는 매개변수가 필요하지 않습니다.

이것은 매우 편리하지만 매우 위험하다고 생각할 수도 있습니다! 걱정하지 마십시오. 이러한 매개변수는 PHP의 안전 모드에서는 유효하지 않습니다. 안전 모드 설정을 살펴보겠습니다.

안전 모드 부울 WINDOWS 98의 안전 모드가 아닙니다. PHP 시스템이 안전 모드에 있을 때, 우리는 PHP 프로그램의 동작을 어느 정도 제어할 수 있습니다. 이때 MYSQL, INFOMIX 등과 같은 일부 데이터베이스의 기본 데이터베이스 호스트, 사용자 이름, 비밀번호 및 기타 설정은 다음과 같습니다. 유효하지 않으며 불법 사용자는 데이터베이스에 쉽게 연결할 수 없습니다. 그리고 안전 모드에서 safe_mode_allowed_env_vars 문자열 설정은 프로그램에서 변경할 수 있는 시스템 환경 변수의 유형을 나타냅니다. safe_mode_allowed_env_vars=PHP_로 설정하면 PHP_로 시작하는 시스템 환경 변수만 수정할 수 있다는 의미입니다. 현재 프로그램에서 putenv("windir=UUU");를 사용하여 환경 변수를 수정하려고 하면 시스템에서 안전 모드 보호 오류가 표시됩니다. 또한 안전 모드에는 지정된 디렉터리에서만 실행될 수 있는 system()과 같은 시스템 명령에 대한 특정 제한 사항이 있습니다. 이를 통해 시스템 파일을 어느 정도 보호할 수 있습니다.

log_errors boolean 이 매개변수는 PHP 프로그램 오류 시 오류 정보를 LOG 문서에 기록해야 하는지 여부를 지정합니다. NT 시스템에서는 error_log =syslog도 설정하면 이벤트 뷰어의 애플리케이션 로그에서 PHP에서 발생한 오류 정보를 확인할 수 있어 대규모 시스템을 테스트하는 데 도움이 된다.
error_prepend_string = "
error_append_string = "

이 두 가지 설정 매개변수는 더 흥미롭습니다. 위와 같이 설정하면 프로그램에 오류가 발생했는지 한 눈에 알 수 있습니다! 그의 기능은 오류 메시지를 눈에 띄는 빨간색으로 설정하는 것이기 때문입니다.


이상은 관련 내용을 포함하여 PHP의 구성 파일 php.ini에 대한 분석을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.