2016-06-20 17 views
3

내가 PHP의 ob_get_status 기능에 대한 문서를 검색하고 발견 된 다음PHP에서 출력 버퍼 이름을 어떻게 설정할 수 있습니까?

반환 값 : full_status를 매개 변수없이 또는 full_status를 호출하면

= FALSE 다음 요소가있는 간단한 배열이 반환됩니다.

Array (
    [level] => 2 
    [type] => 0 
    [status] => 0 
    [name] => URL-Rewriter 
    [del] => 1 
) 

모든 인터넷은 꽤 명확 해 보입니다. 그러나 모든 인터넷은 하나의 질문에 대답 할 수없는 것처럼 보입니다. 어떻게 출력 버퍼의 이름을 설정할 수 있습니까?

할 수 있습니까? 나는 문서 그 자체 나 그 밖의 다른 곳에서 어떠한 단서도 찾을 수 없다. 설명서를 언급하지만 그

이름 = 활성 출력 핸들러 또는 '기본 출력 핸들러' 것도 꽤 많이 는 어떻게 든 그것을 설정할 수 있습니다을 의미

를 설정되어 있지 않은 경우의 이름입니다.

이 작업을 수행 할 수 있으십니까? 어떤 도움이라도 크게 호소 될 것입니다.

+0

당신은 정말 이름을 설정할 수 없습니다. 'name'은 출력 버퍼링을 처리하는 함수 이름과 같습니다. 'mb_output_handler'. http://php.net/mb_output_handler –

답변

1

ob_start을 사용하면 PHP에서 출력 버퍼링을 켤 수 있습니다.

부울위한 ob_start ([$ output_callback을 = NULL [INT $ 수 chunk_size = 0 [INT $으로 플래그 = PHP_OUTPUT_HANDLER_STDFLAGS] 호출])

: 함수는 서명을 가지고

참고

명명 된 함수를 유효한 콜백으로 전달할 수 있습니다. 예를 들어

:

<?php 

function test_handler($a) { 
    return $a; 
} 

ob_start('test_handler'); 

var_dump(ob_get_status()); 

당신에게 줄 것이다는 :

array(7) { 
    ["name"]=> 
    string(12) "test_handler" 
    ["type"]=> 
    int(1) 
    ["flags"]=> 
    int(113) 
    ["level"]=> 
    int(0) 
    ["chunk_size"]=> 
    int(0) 
    ["buffer_size"]=> 
    int(16384) 
    ["buffer_used"]=> 
    int(0) 
} 
1

출력 버퍼에 설정하는 이름은 플러시 될 때 호출되는 출력 처리기의 이름입니다.

예는

ob_start('my_buffer'); 


function my_buffer($buff){ 
    return str_replace(":)","<img src=\"smiley\"/>",$buff); 
} 
+0

감사합니다. 나는 왜 문서에 이것에 대한 언급이 전혀 없는지 궁금하다. – Kalko

1

당신은 이름을 설정할 수 없습니다. 콜백의 이름을 출력합니다. 콜백 메소드 클래스의 foo_bar에게 한국 전기입니다

[name] => "foo_bar" 

경우 :

[name] => "Acme::foo_bar" 

콜백이 경우 콜백라는 기능 foo_bar 인 경우

익명 함수 :

[name] => "Closure::__invoke"