int phalcon_ob_end_flush() { if (phalcon_ob_get_level() < 1) { php_error_docref("ref.outcontrol", E_NOTICE, "failed to delete and flush buffer. No buffer to flush"); return FAILURE; } return php_output_end(); }
int filter_code_comments(char *filename, zval *retval) { zend_lex_state original_lex_state; zend_file_handle file_handle = {0}; #if PHP_API_VERSION > 20090626 php_output_start_default(TSRMLS_C); file_handle.type = ZEND_HANDLE_FILENAME; file_handle.filename = filename; file_handle.free_filename = 0; file_handle.opened_path = NULL; zend_save_lexical_state(&original_lex_state TSRMLS_CC); if (open_file_for_scanning(&file_handle TSRMLS_CC) == FAILURE) { zend_restore_lexical_state(&original_lex_state TSRMLS_CC); php_output_end(TSRMLS_C); return -1; } zend_strip(TSRMLS_C); zend_destroy_file_handle(&file_handle TSRMLS_CC); zend_restore_lexical_state(&original_lex_state TSRMLS_CC); php_output_get_contents(retval TSRMLS_CC); php_output_discard(TSRMLS_C); #else file_handle.type = ZEND_HANDLE_FILENAME; file_handle.filename = filename; file_handle.free_filename = 0; file_handle.opened_path = NULL; zend_save_lexical_state(&original_lex_state TSRMLS_CC); if (open_file_for_scanning(&file_handle TSRMLS_CC) == FAILURE) { zend_restore_lexical_state(&original_lex_state TSRMLS_CC); return -1; } php_start_ob_buffer(NULL, 0, 1 TSRMLS_CC); zend_strip(TSRMLS_C); zend_destroy_file_handle(&file_handle TSRMLS_CC); zend_restore_lexical_state(&original_lex_state TSRMLS_CC); php_ob_get_buffer(retval TSRMLS_CC); php_end_ob_buffer(0, 0 TSRMLS_CC); #endif return 0; }