2011-01-29 5 views
1

나는 다양한 시스템 명령을 실행하기위한 커맨드 라인 스크립팅 언어로서 php를 사용하고있다.로컬 스크립트에 대해서만 PHP의 register_globals를 켜는 방법은 무엇입니까?

어떻게 로컬에서 register_globals를 활성화 할 수 있습니까? 단일 스크립트 만 가능합니까? 스크립트 자체를 통해이 작업을 수행 할 수 있습니까?

가능한 경우 전역 설정을 변경하지 않는 것이 좋습니다.

답변

4

변경 지시 또는 명령 줄에서 php.ini 파일 :

C:\>php -? 
[...] 
    -c <path>|<file> Look for php.ini file in this directory 
[...] 
    -d foo[=bar]  Define INI entry foo with value 'bar' 

예컨대 : 물론

php -d register_globals=1 do-stuff.php 

, 장기적으로는 단순히 스크립트를 수정하는 것이 좋습니다. 그렇지 않으면 시스템 업그레이드 후 스크립트가 실행되지 않는 언젠가를 알 수 있습니다.

shebang 구문을 사용하는 경우 하나 이상의 인수를 제공 할 수 있도록 PHP 용 래퍼를 작성해야 할 수 있습니다.

+0

이 경우 shebang은'#!/usr/bin/php -register_globals = 1' 일 수 있습니다. 제한된 매개 변수 연결이 지원됩니다. – mario

2

언제든지 extract()을 "등록"하고 싶은 모든 어레이에서 호출 할 수 있습니다. 매뉴얼의 추가 매개 변수를 체크 아웃해야합니다. 변수를 덮어 쓰거나 접두어를 붙이면됩니다.

register_globals은 더 이상 사용되지 않으며, 이와 같은 작업을 수행 할 때 고려해야 할 특정 보안 문제가 있습니다.

관련 문제