コード例 #1
0
ファイル: zend_multibyte.c プロジェクト: AxiosCros/php-src
ZEND_API int zend_multibyte_set_functions(const zend_multibyte_functions *functions)
{
	zend_multibyte_encoding_utf32be = functions->encoding_fetcher("UTF-32BE");
	if (!zend_multibyte_encoding_utf32be) {
		return FAILURE;
	}
	zend_multibyte_encoding_utf32le = functions->encoding_fetcher("UTF-32LE");
	if (!zend_multibyte_encoding_utf32le) {
		return FAILURE;
	}
	zend_multibyte_encoding_utf16be = functions->encoding_fetcher("UTF-16BE");
	if (!zend_multibyte_encoding_utf16be) {
		return FAILURE;
	}
	zend_multibyte_encoding_utf16le = functions->encoding_fetcher("UTF-16LE");
	if (!zend_multibyte_encoding_utf16le) {
		return FAILURE;
	}
	zend_multibyte_encoding_utf8 = functions->encoding_fetcher("UTF-8");
	if (!zend_multibyte_encoding_utf8) {
		return FAILURE;
	}

	multibyte_functions_dummy = multibyte_functions;
	multibyte_functions = *functions;

	/* As zend_multibyte_set_functions() gets called after ini settings were
	 * populated, we need to reinitialize script_encoding here.
	 */
	{
		const char *value = zend_ini_string("zend.script_encoding", sizeof("zend.script_encoding") - 1, 0);
		zend_multibyte_set_script_encoding_by_string(value, strlen(value));
	}
	return SUCCESS;
}
コード例 #2
0
ファイル: zend.c プロジェクト: LuthandoE/php-src
static ZEND_INI_MH(OnUpdateScriptEncoding) /* {{{ */
{
	if (!CG(multibyte)) {
		return FAILURE;
	}
	if (!zend_multibyte_get_functions()) {
		return SUCCESS;
	}
	return zend_multibyte_set_script_encoding_by_string(new_value ? ZSTR_VAL(new_value) : NULL, new_value ? ZSTR_LEN(new_value) : 0);
}
コード例 #3
0
ファイル: zend.c プロジェクト: BenBuurman/php-src
static ZEND_INI_MH(OnUpdateScriptEncoding) /* {{{ */
{
	if (!CG(multibyte)) {
		return FAILURE;
	}
	if (!zend_multibyte_get_functions(TSRMLS_C)) {
		return SUCCESS;
	}
	return zend_multibyte_set_script_encoding_by_string(new_value->val, new_value->len TSRMLS_CC);
}