FAQ
PHP Manual

기타 질문

다른 분류에 넣을 수 없는 몇몇 질문이 존재합니다. 여기에서 확인할 수 있습니다.

  1. 윈도우에서 어떻게 bz2 압축 매뉴얼을 다룹니까?
  2. 함수 정의에서 인수 옆에 &가 무엇을 의미합니까? 예. asort()
  3. register_globals을 어떻게 다룹니까?

윈도우에서 어떻게 bz2 압축 매뉴얼을 다룹니까?

bz2 파일을 다루는 압축 도구가 없다면, Redhat에서 명령줄 도구를 » 받을 수 있습니다. (아래에서 추가 정보를 확인하십시오)

명령줄 도구를 사용하기 싫다면, » Stuffit Expander, » UltimateZip, » 7-Zip, » Quick Zip 등의 무료 도구를 사용해 보십시오. » WinRAR이나 » Power Archiver 같은 도구를 가지고 있다면, 그걸로 bz2 파일을 풀 수 있습니다. Total Commander(이전엔 Windows Commandr)를 사용한다면, » Total Commander 사이트에서 bz2 플러그인을 무료로 받을 수 있습니다.

Redhat의 bzip2 명령줄 도구:

Win2k Sp2 사용자는 최신 버전 1.0.2를 받고, 다른 윈도우 사용자는 버전 1.00을 받습니다. 내려받기가 끝난 후 실행 파일을 bzip2.exe로 이름을 바꿉니다. 편하게 사용하기 위해서 path에 있는 디렉토리에 넣습니다. 예. C:\Windows C는 윈도우 설치 드라이브를 나타냅니다.

주의: lang는 언어를 나타내고 x는 형식을 나타냅니다, 예: pdf. php_manual_lang.x.bz2를 풀려면 간단히 다음 절차를 따릅니다:

  • 명령 프롬프트 창을 엽니다
  • 내려받은 php_manual_lang.x.bz2 파일을 저장한 폴더로 cd 합니다
  • bzip2 -d php_manual_lang.x.bz2 를 실행하면, 같은 폴더에 php_manual_lang.x가 풀립니다

많은 html 파일을 포함한 php_manual_lang.tar.bz2를 받았을 경우에도, 절차는 같습니다. 유일한 차이는 php_manual_lang.tar 파일을 얻는 점입니다. tar 형식은 대부분의 윈도우 압축기에서 다룰 수 있습니다. 예. » WinZip.

함수 정의에서 인수 옆에 &가 무엇을 의미합니까? 예. asort()

이는 인수가 참조로 전달됨을 의미하고, 함수가 문서에 따라 변경할 수 있음을 의미합니다. 변수를 이 방법으로만 전달할 수 있고, 함수 호출에서 &로 전달할 필요가 없습니다. (심지어 배제되었습니다)

register_globals을 어떻게 다룹니까?

register_globals의 보안 문제에 대한 정보를, register_globals 사용하기 보안장에서 읽어보십시오.

register_globals를 켜는 것에 의존하는 대신 자동 전역 사용을 권합니다.

register_globals가 꺼져있는 공유 호스트에서, 켜져있어야 하는 오래된 어플리케이션을 사용해야 할 경우나, 이 기능이 켜져있는 몇몇 호스팅 서버에서 보안 문제를 피하기 위해서 PHP에서 반대 설정을 흉내내야 할 경우가 있습니다. PHP의 설정을 바꾸는 방법으로 해결하는 것이 가장 좋은 방법이겠지만, 불가능할 경우 다음의 호환용 코드 조각을 사용할 수 있습니다.

Example #1 Register Globals 흉내내기

register_globals On을 흉내냅니다. variables_order 지시어를 변경하였다면, $superglobals도 따라서 변경하십시오.

<?php
// register_globals on 흉내내기
if (!ini_get('register_globals')) {
    
$superglobals = array($_SERVER$_ENV,
        
$_FILES$_COOKIE$_POST$_GET);
    if (isset(
$_SESSION)) {
        
array_unshift($superglobals$_SESSION);
    }
    foreach (
$superglobals as $superglobal) {
        
extract($superglobalEXTR_SKIP);
    }
}
?>

register_globals Off를 흉내냅니다. 이 코드를 스크립트 처음이나, 세션을 사용한다면 session_start() 이후에 호출해야 하는 점을 명심하십시오.

<?php
// register_globals off 흉내내기
function unregister_GLOBALS()
{
    if (!
ini_get('register_globals')) {
        return;
    }

    
// Might want to change this perhaps to a nicer error
    
if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
        die(
'GLOBALS overwrite attempt detected');
    }

    
// Variables that shouldn't be unset
    
$noUnset = array('GLOBALS',  '_GET',
                     
'_POST',    '_COOKIE',
                     
'_REQUEST''_SERVER',
                     
'_ENV',     '_FILES');

    
$input array_merge($_GET,    $_POST,
                         
$_COOKIE$_SERVER,
                         
$_ENV,    $_FILES,
                         isset(
$_SESSION) && is_array($_SESSION) ? $_SESSION : array());
    
    foreach (
$input as $k => $v) {
        if (!
in_array($k$noUnset) && isset($GLOBALS[$k])) {
            unset(
$GLOBALS[$k]);
        }
    }
}

unregister_GLOBALS();

?>


FAQ
PHP Manual