/* {{{ OnUpdate_zlib_output_handler */ static PHP_INI_MH(OnUpdate_zlib_output_handler) { if (stage == PHP_INI_STAGE_RUNTIME && (php_output_get_status() & PHP_OUTPUT_SENT)) { php_error_docref("ref.outcontrol", E_WARNING, "Cannot change zlib.output_handler - headers already sent"); return FAILURE; } return OnUpdateString(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage); }
/* {{{ OnUpdate_zlib_output_compression */ static PHP_INI_MH(OnUpdate_zlib_output_compression) { int int_value; char *ini_value; zend_long *p; #ifndef ZTS char *base = (char *) mh_arg2; #else char *base; base = (char *) ts_resource(*((int *) mh_arg2)); #endif if (new_value == NULL) { return FAILURE; } if (!strncasecmp(new_value->val, "off", sizeof("off"))) { int_value = 0; } else if (!strncasecmp(new_value->val, "on", sizeof("on"))) { int_value = 1; } else { int_value = zend_atoi(new_value->val, new_value->len); } ini_value = zend_ini_string("output_handler", sizeof("output_handler"), 0); if (ini_value && *ini_value && int_value) { php_error_docref("ref.outcontrol", E_CORE_ERROR, "Cannot use both zlib.output_compression and output_handler together!!"); return FAILURE; } if (stage == PHP_INI_STAGE_RUNTIME) { int status = php_output_get_status(); if (status & PHP_OUTPUT_SENT) { php_error_docref("ref.outcontrol", E_WARNING, "Cannot change zlib.output_compression - headers already sent"); return FAILURE; } } p = (zend_long *) (base+(size_t) mh_arg1); *p = int_value; ZLIBG(output_compression) = ZLIBG(output_compression_default); if (stage == PHP_INI_STAGE_RUNTIME && int_value) { if (!php_output_handler_started(ZEND_STRL(PHP_ZLIB_OUTPUT_HANDLER_NAME))) { php_zlib_output_compression_start(); } } return SUCCESS; }
static PHP_INI_MH(php_tidy_set_clean_output) { int status; zend_bool value; if (ZSTR_LEN(new_value)==2 && strcasecmp("on", ZSTR_VAL(new_value))==0) { value = (zend_bool) 1; } else if (ZSTR_LEN(new_value)==3 && strcasecmp("yes", ZSTR_VAL(new_value))==0) { value = (zend_bool) 1; } else if (ZSTR_LEN(new_value)==4 && strcasecmp("true", ZSTR_VAL(new_value))==0) { value = (zend_bool) 1; } else { value = (zend_bool) atoi(ZSTR_VAL(new_value)); } if (stage == PHP_INI_STAGE_RUNTIME) { status = php_output_get_status(); if (value && (status & PHP_OUTPUT_WRITTEN)) { php_error_docref(NULL, E_WARNING, "Cannot enable tidy.clean_output - there has already been output"); return FAILURE; } if (status & PHP_OUTPUT_SENT) { php_error_docref(NULL, E_WARNING, "Cannot change tidy.clean_output - headers already sent"); return FAILURE; } } status = OnUpdateBool(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage); if (stage == PHP_INI_STAGE_RUNTIME && value) { if (!php_output_handler_started(ZEND_STRL("ob_tidyhandler"))) { php_tidy_clean_output_start(ZEND_STRL("ob_tidyhandler")); } } return status; }