code

주의: ob_end_flush(): zlib 출력 압축(1)의 버퍼를 전송하지 못했습니다.

starcafe 2023. 2. 12. 18:05
반응형

주의: ob_end_flush(): zlib 출력 압축(1)의 버퍼를 전송하지 못했습니다.

localhost에서는 문제가 없지만 서버에서 코드를 테스트했을 때 모든 페이지 끝에 이 알림이 나타납니다.

내 코드:

<?php
ob_start();
include 'view.php';

$data = ob_get_contents();
ob_end_clean();
include 'master.php';
ob_end_flush();  // Problem is this line

WordPress는 WordPress를 사용합니다. 때문에 합니다.ob_end_flush().

압축은 계속 켜두고 플래시 액션을 간단히 해제할 수 있어야 합니다.

remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 );

해서 '아예'로 전화를 걸 수 .ob_end_flush()zlib를 사용하다

기능을 해제하는 것은 추천하지 않습니다.wp_ob_end_flush_all()하며, 절대 않을 이다.zlib.output_compression 안에서php.ini다음은 문제의 원인이 되는 소스 코드를 대체하고 기본 기능을 유지하는 더 나은 방법입니다.

/**
 * Proper ob_end_flush() for all levels
 *
 * This replaces the WordPress `wp_ob_end_flush_all()` function
 * with a replacement that doesn't cause PHP notices.
 */
remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 );
add_action( 'shutdown', function() {
   while ( @ob_end_flush() );
} );

원인에 대한 자세한 내용과 이것이 최선의 접근법인 이유에 대한 자세한 내용은 다음 URL을 참조하십시오.WordPress ob_end_flush() 오류의 빠른 수정

zlib.output_compression으로 되었습니다.php.ini

zlib.output_compression = Off

우리 고객의 WP 사이트 중 하나에서 특정 플러그인이 원인임을 발견했습니다.

이 경우 "NextGEN Gallery" 플러그인이 원인인데 이상하게도 간단히 비활성화하고 플러그인을 활성화하면 문제가 해결되었습니다.

이 문제를 안고 있는 다른 사용자는 프론트 엔드의 의심스러운 플러그인을 찾아 같은 방법으로 시도해 보는 것이 좋습니다.문제의 원인이 되는 플러그인이 재활성화되었을 때 문제가 재발하는 것을 발견하면 플러그인 작성자에게 문제를 제기해야 합니다.

보안상의 이유로 라이브 사이트에서는 항상 전면 오류를 비활성화해야 합니다.

Wordpress 에러를 숨기고, 대신에 에러 로그를 취득해 리뷰하는 경우는, 다음과 같은 조작을 wp-config.php 파일에 실시합니다.

// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );

// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );

// Disable display of errors and warnings
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

하는 경우 : "remove_action"remove_action('shutdown', 'wp_ob_end_flush_all', 1);테마php 파일입니다.

PPS 를 사용해 도 좋을지도 .define(‘WP_MEMORY_LIMIT’,’1024M’);wp-config.php 파일에는 필요 이상으로 할당하지 않도록 주의해 주세요.이것은 Wordpress의 프런트 엔드에 영향을 주고, 페이지에 동시 히트가 너무 많으면 RAM이 부족해질 위험이 있기 때문입니다.

테마 함수에 이 기능을 추가합니다.php 파일

remove_action('display', 'wp_ob_end_display_all', 1 );

다른 시나리오:

데모 사이트가 라이브 사이트와 같은 서버상에 있는 경우에도, 저는 이 통지를 제 라이브 사이트에는 받고 있었지만, 로컬 호스트나 스테이징/데모 사이트에는 받지 않았습니다.

라이브 사이트에서 zlib 확장이 활성화되지 않아 알림이 발생하였습니다.zlib 확장이 활성화되면 알림이 더 이상 표시되지 않습니다.그래서 코드를 수정할 필요가 없었습니다.

이것을 치환하다ob_end_flush()로 대체하다.remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 )

**
* Flush all output buffers for PHP 5.2.
*
* Make sure all output buffers are flushed before our singletons are destroyed.
*
* @since 2.2.0
*/
function wp_ob_end_flush_all() {
     $levels = ob_get_level();
     
     for ( $i = 0; $i < $levels; $i++ ) {
         ob_end_flush();
     }
}

업데이트된 코드는 다음과 같습니다.

function wp_ob_end_flush_all() {
    $levels = ob_get_level();

    for ( $i = 0; $i < $levels; $i++ ) {
        remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 );
    }
}

Just Use Your code on shutdown 훅을 사용하여 위치를 앞당깁니다.기본 ob_end_flush()는 출력을 인식하여 플래시합니다.

    add_action('shutdown', 'your_code', 0);
function your_code(){
/* Your Code Goes here */
}

저는 강력한 접근을 시도했지만 효과가 있었습니다(만족스럽지는 않지만, 이것이 누군가에게 도움이 되기를 바랍니다).

/wp-content/temes/<theme_directory>/functions.php의 마지막 줄(분명히 php closure' 앞)>' 다음 행을 추가합니다.

ob_get_clean();

이 오류는 마감이 없기 때문에 발생할 수 있습니다.?>'액티베이션 중에 플러그인이 예기치 않은 출력의 X자를 생성했습니다'라는 에러가 발생하여 디버깅을 활성화하여 왔습니다.index.php의 include 파일을 압축하여 오류 발생 여부와 관계없이 사용할 수 있는 대상 파일로 했습니다.그리고 그 파일에 들어가 PHP 태그로 파일을 닫았습니다.파일 안에는 많은 함수가 있기 때문입니다.그 후 일을 했다.

당황하지 마, 너무 간단해.함수 php를 열고 이 코드를 찾으십시오.

**
 * Flush all output buffers for PHP 5.2.
 *
 * Make sure all output buffers are flushed before our singletons are destroyed.
 *
 * @since 2.2.0
 */
function wp_ob_end_flush_all() {
  $levels = ob_get_level();
  for ( $i = 0; $i < $levels; $i++ ) {
    ob_end_flush();
  }
}

단순히 "ob_end_flush();"를 삭제하고 이 코드를 바꾼 후

remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 );

100% 해결했습니다.

워드프레스 디버깅모드를 디세블로 하면 해결됩니다.WP 디버깅모드를 디세블로 할 수 있습니다./wp-config.php:

define('WP_DEBUG', FALSE);

언급URL : https://stackoverflow.com/questions/38693992/notice-ob-end-flush-failed-to-send-buffer-of-zlib-output-compression-1-in

반응형