Commits

Anonymous committed 38dbb39

[svn] Add a test file for the vim lexer.

  • Participants
  • Parent commits 51f2b9c
  • Branches trunk

Comments (0)

Files changed (2)

tests/examplefiles/phpcomplete.vim

+" Vim completion script
+" Language:	PHP
+" Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
+" Last Change:	2006 May 9
+"
+"   TODO:
+"   - Class aware completion:
+"      a) caching?
+"   - Switching to HTML (XML?) completion (SQL) inside of phpStrings
+"   - allow also for XML completion <- better do html_flavor for HTML
+"     completion
+"   - outside of <?php?> getting parent tag may cause problems. Heh, even in
+"     perfect conditions GetLastOpenTag doesn't cooperate... Inside of
+"     phpStrings this can be even a bonus but outside of <?php?> it is not the
+"     best situation
+
+function! phpcomplete#CompletePHP(findstart, base)
+	if a:findstart
+		unlet! b:php_menu
+		" Check if we are inside of PHP markup
+		let pos = getpos('.')
+		let phpbegin = searchpairpos('<?', '', '?>', 'bWn',
+				\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\|comment"')
+		let phpend   = searchpairpos('<?', '', '?>', 'Wn',
+				\ 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\|comment"')
+
+		if phpbegin == [0,0] && phpend == [0,0]
+			" We are outside of any PHP markup. Complete HTML
+			let htmlbegin = htmlcomplete#CompleteTags(1, '')
+			let cursor_col = pos[2]
+			let base = getline('.')[htmlbegin : cursor_col]
+			let b:php_menu = htmlcomplete#CompleteTags(0, base)
+			return htmlbegin
+		else
+			" locate the start of the word
+			let line = getline('.')
+			let start = col('.') - 1
+			let curline = line('.')
+			let compl_begin = col('.') - 2
+			while start >= 0 && line[start - 1] =~ '[a-zA-Z_0-9\x7f-\xff$]'
+				let start -= 1
+			endwhile
+			let b:compl_context = getline('.')[0:compl_begin]
+			return start
+
+			" We can be also inside of phpString with HTML tags. Deal with
+			" it later (time, not lines).
+		endif
+
+	endif
+	" If exists b:php_menu it means completion was already constructed we
+	" don't need to do anything more
+	if exists("b:php_menu")
+		return b:php_menu
+	endif
+	" Initialize base return lists
+	let res = []
+	let res2 = []
+	" a:base is very short - we need context
+	if exists("b:compl_context")
+		let context = b:compl_context
+		unlet! b:compl_context
+	endif
+
+	if !exists('g:php_builtin_functions')
+		call phpcomplete#LoadData()
+	endif
+
+	let scontext = substitute(context, '\$\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*$', '', '')
+
+	if scontext =~ '\(=\s*new\|extends\)\s\+$'
+		" Complete class name
+		" Internal solution for finding classes in current file.
+		let file = getline(1, '$')
+		call filter(file,
+				\ 'v:val =~ "class\\s\\+[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
+		let jfile = join(file, ' ')
+		let int_values = split(jfile, 'class\s\+')
+		let int_classes = {}
+		for i in int_values
+			let c_name = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
+			if c_name != ''
+				let int_classes[c_name] = ''
+			endif
+		endfor
+
+		" Prepare list of classes from tags file
+		let ext_classes = {}
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
+		if fnames != ''
+			exe 'silent! vimgrep /^'.a:base.'.*\tc\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			if len(qflist) > 0
+				for field in qflist
+					" [:space:] thing: we don't have to be so strict when
+					" dealing with tags files - entries there were already
+					" checked by ctags.
+					let item = matchstr(field['text'], '^[^[:space:]]\+')
+					let ext_classes[item] = ''
+				endfor
+			endif
+		endif
+
+		" Prepare list of built in classes from g:php_builtin_functions
+		if !exists("g:php_omni_bi_classes")
+			let g:php_omni_bi_classes = {}
+			for i in keys(g:php_builtin_object_functions)
+				let g:php_omni_bi_classes[substitute(i, '::.*$', '', '')] = ''
+			endfor
+		endif
+
+		let classes = sort(keys(int_classes))
+		let classes += sort(keys(ext_classes))
+		let classes += sort(keys(g:php_omni_bi_classes))
+
+		for m in classes
+			if m =~ '^'.a:base
+				call add(res, m)
+			endif
+		endfor
+
+		let final_menu = []
+		for i in res
+			let final_menu += [{'word':i, 'kind':'c'}]
+		endfor
+
+		return final_menu
+
+	elseif scontext =~ '\(->\|::\)$'
+		" Complete user functions and variables
+		" Internal solution for current file.
+		" That seems as unnecessary repeating of functions but there are
+		" few not so subtle differences as not appending of $ and addition
+		" of 'kind' tag (not necessary in regular completion)
+
+		if scontext =~ '->$' && scontext !~ '\$this->$'
+
+			" Get name of the class
+			let classname = phpcomplete#GetClassName(scontext)
+
+			" Get location of class definition, we have to iterate through all
+			" tags files separately because we need relative path from current
+			" file to the exact file (tags file can be in different dir)
+			if classname != ''
+				let classlocation = phpcomplete#GetClassLocation(classname)
+			else
+				let classlocation = ''
+			endif
+
+			if classlocation == 'VIMPHP_BUILTINOBJECT'
+
+				for object in keys(g:php_builtin_object_functions)
+					if object =~ '^'.classname
+						let res += [{'word':substitute(object, '.*::', '', ''),
+							   	\    'info': g:php_builtin_object_functions[object]}]
+					endif
+				endfor
+
+				return res
+
+			endif
+
+			if filereadable(classlocation)
+				let classfile = readfile(classlocation)
+				let classcontent = ''
+				let classcontent .= "\n".phpcomplete#GetClassContents(classfile, classname)
+				let sccontent = split(classcontent, "\n")
+
+				" YES, YES, YES! - we have whole content including extends!
+				" Now we need to get two elements: public functions and public
+				" vars
+				" NO, NO, NO! - third separate filtering looking for content
+				" :(, but all of them have differences. To squeeze them into
+				" one implementation would require many additional arguments
+				" and ifs. No good solution
+				" Functions declared with public keyword or without any
+				" keyword are public
+				let functions = filter(deepcopy(sccontent),
+						\ 'v:val =~ "^\\s*\\(static\\s\\+\\|public\\s\\+\\)*function"')
+				let jfuncs = join(functions, ' ')
+				let sfuncs = split(jfuncs, 'function\s\+')
+				let c_functions = {}
+				for i in sfuncs
+					let f_name = matchstr(i,
+							\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
+					let f_args = matchstr(i,
+							\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*{')
+					if f_name != ''
+						let c_functions[f_name.'('] = f_args
+					endif
+				endfor
+				" Variables declared with var or with public keyword are
+				" public
+				let variables = filter(deepcopy(sccontent),
+						\ 'v:val =~ "^\\s*\\(public\\|var\\)\\s\\+\\$"')
+				let jvars = join(variables, ' ')
+				let svars = split(jvars, '\$')
+				let c_variables = {}
+				for i in svars
+					let c_var = matchstr(i,
+							\ '^\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
+					if c_var != ''
+						let c_variables[c_var] = ''
+					endif
+				endfor
+
+				let all_values = {}
+				call extend(all_values, c_functions)
+				call extend(all_values, c_variables)
+
+				for m in sort(keys(all_values))
+					if m =~ '^'.a:base && m !~ '::'
+						call add(res, m)
+					elseif m =~ '::'.a:base
+						call add(res2, m)
+					endif
+				endfor
+
+				let start_list = res + res2
+
+				let final_list = []
+				for i in start_list
+					if has_key(c_variables, i)
+						let class = ' '
+						if all_values[i] != ''
+							let class = i.' class '
+						endif
+						let final_list +=
+								\ [{'word':i,
+								\   'info':class.all_values[i],
+								\   'kind':'v'}]
+					else
+						let final_list +=
+								\ [{'word':substitute(i, '.*::', '', ''),
+								\   'info':i.all_values[i].')',
+								\   'kind':'f'}]
+					endif
+				endfor
+
+				return final_list
+
+			endif
+
+		endif
+
+		if a:base =~ '^\$'
+			let adddollar = '$'
+		else
+			let adddollar = ''
+		endif
+		let file = getline(1, '$')
+		let jfile = join(file, ' ')
+		let sfile = split(jfile, '\$')
+		let int_vars = {}
+		for i in sfile
+			if i =~ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new'
+				let val = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*').'->'
+			else
+				let val = matchstr(i, '^[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
+			endif
+			if val !~ ''
+				let int_vars[adddollar.val] = ''
+			endif
+		endfor
+
+		" ctags has good support for PHP, use tags file for external
+		" variables
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
+		let ext_vars = {}
+		if fnames != ''
+			let sbase = substitute(a:base, '^\$', '', '')
+			exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			if len(qflist) > 0
+				for field in qflist
+					let item = matchstr(field['text'], '^[^[:space:]]\+')
+					" Add -> if it is possible object declaration
+					let classname = ''
+					if field['text'] =~ item.'\s*=\s*new\s\+'
+						let item = item.'->'
+						let classname = matchstr(field['text'],
+								\ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
+					endif
+					let ext_vars[adddollar.item] = classname
+				endfor
+			endif
+		endif
+
+		" Now we have all variables in int_vars dictionary
+		call extend(int_vars, ext_vars)
+
+		" Internal solution for finding functions in current file.
+		let file = getline(1, '$')
+		call filter(file,
+				\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
+		let jfile = join(file, ' ')
+		let int_values = split(jfile, 'function\s\+')
+		let int_functions = {}
+		for i in int_values
+			let f_name = matchstr(i,
+					\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
+			let f_args = matchstr(i,
+					\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*{')
+			let int_functions[f_name.'('] = f_args.')'
+		endfor
+
+		" Prepare list of functions from tags file
+		let ext_functions = {}
+		if fnames != ''
+			exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			if len(qflist) > 0
+				for field in qflist
+					" File name
+					let item = matchstr(field['text'], '^[^[:space:]]\+')
+					let fname = matchstr(field['text'], '\t\zs\f\+\ze')
+					let prototype = matchstr(field['text'],
+							\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
+					let ext_functions[item.'('] = prototype.') - '.fname
+				endfor
+			endif
+		endif
+
+		let all_values = {}
+		call extend(all_values, int_functions)
+		call extend(all_values, ext_functions)
+		call extend(all_values, int_vars) " external variables are already in
+		call extend(all_values, g:php_builtin_object_functions)
+
+		for m in sort(keys(all_values))
+			if m =~ '\(^\|::\)'.a:base
+				call add(res, m)
+			endif
+		endfor
+
+		let start_list = res
+
+		let final_list = []
+		for i in start_list
+			if has_key(int_vars, i)
+				let class = ' '
+				if all_values[i] != ''
+					let class = i.' class '
+				endif
+				let final_list += [{'word':i, 'info':class.all_values[i], 'kind':'v'}]
+			else
+				let final_list +=
+						\ [{'word':substitute(i, '.*::', '', ''),
+						\   'info':i.all_values[i],
+						\   'kind':'f'}]
+			endif
+		endfor
+
+		return final_list
+	endif
+
+	if a:base =~ '^\$'
+		" Complete variables
+		" Built-in variables {{{
+		let g:php_builtin_vars = {'$GLOBALS':'',
+								\ '$_SERVER':'',
+								\ '$_GET':'',
+								\ '$_POST':'',
+								\ '$_COOKIE':'',
+								\ '$_FILES':'',
+								\ '$_ENV':'',
+								\ '$_REQUEST':'',
+								\ '$_SESSION':'',
+								\ '$HTTP_SERVER_VARS':'',
+								\ '$HTTP_ENV_VARS':'',
+								\ '$HTTP_COOKIE_VARS':'',
+								\ '$HTTP_GET_VARS':'',
+								\ '$HTTP_POST_VARS':'',
+								\ '$HTTP_POST_FILES':'',
+								\ '$HTTP_SESSION_VARS':'',
+								\ '$php_errormsg':'',
+								\ '$this':''
+								\ }
+		" }}}
+
+		" Internal solution for current file.
+		let file = getline(1, '$')
+		let jfile = join(file, ' ')
+		let int_vals = split(jfile, '\ze\$')
+		let int_vars = {}
+		for i in int_vals
+			if i =~ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*=\s*new'
+				let val = matchstr(i,
+						\ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*').'->'
+			else
+				let val = matchstr(i,
+						\ '^\$[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*')
+			endif
+			if val != ''
+				let int_vars[val] = ''
+			endif
+		endfor
+
+		call extend(int_vars,g:php_builtin_vars)
+
+		" ctags has support for PHP, use tags file for external variables
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
+		let ext_vars = {}
+		if fnames != ''
+			let sbase = substitute(a:base, '^\$', '', '')
+			exe 'silent! vimgrep /^'.sbase.'.*\tv\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			if len(qflist) > 0
+				for field in qflist
+					let item = '$'.matchstr(field['text'], '^[^[:space:]]\+')
+					let m_menu = ''
+					" Add -> if it is possible object declaration
+					if field['text'] =~ item.'\s*=\s*new\s\+'
+						let item = item.'->'
+						let m_menu = matchstr(field['text'],
+								\ '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
+					endif
+					let ext_vars[item] = m_menu
+				endfor
+			endif
+		endif
+
+		call extend(int_vars, ext_vars)
+		let g:a0 = keys(int_vars)
+
+		for m in sort(keys(int_vars))
+			if m =~ '^\'.a:base
+				call add(res, m)
+			endif
+		endfor
+
+		let int_list = res
+
+		let int_dict = []
+		for i in int_list
+			if int_vars[i] != ''
+				let class = ' '
+				if int_vars[i] != ''
+					let class = i.' class '
+				endif
+				let int_dict += [{'word':i, 'info':class.int_vars[i], 'kind':'v'}]
+			else
+				let int_dict += [{'word':i, 'kind':'v'}]
+			endif
+		endfor
+
+		return int_dict
+
+	else
+		" Complete everything else -
+		"  + functions,  DONE
+		"  + keywords of language DONE
+		"  + defines (constant definitions), DONE
+		"  + extend keywords for predefined constants, DONE
+		"  + classes (after new), DONE
+		"  + limit choice after -> and :: to funcs and vars DONE
+
+		" Internal solution for finding functions in current file.
+		let file = getline(1, '$')
+		call filter(file,
+				\ 'v:val =~ "function\\s\\+&\\?[a-zA-Z_\\x7f-\\xff][a-zA-Z_0-9\\x7f-\\xff]*\\s*("')
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
+		let jfile = join(file, ' ')
+		let int_values = split(jfile, 'function\s\+')
+		let int_functions = {}
+		for i in int_values
+			let f_name = matchstr(i,
+					\ '^&\?\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze')
+			let f_args = matchstr(i,
+					\ '^&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\s*\zs.\{-}\ze\s*)\_s*{')
+			let int_functions[f_name.'('] = f_args.')'
+		endfor
+
+		" Prepare list of functions from tags file
+		let ext_functions = {}
+		if fnames != ''
+			exe 'silent! vimgrep /^'.a:base.'.*\tf\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			if len(qflist) > 0
+				for field in qflist
+					" File name
+					let item = matchstr(field['text'], '^[^[:space:]]\+')
+					let fname = matchstr(field['text'], '\t\zs\f\+\ze')
+					let prototype = matchstr(field['text'],
+							\ 'function\s\+&\?[^[:space:]]\+\s*(\s*\zs.\{-}\ze\s*)\s*{\?')
+					let ext_functions[item.'('] = prototype.') - '.fname
+				endfor
+			endif
+		endif
+
+		" All functions
+		call extend(int_functions, ext_functions)
+		call extend(int_functions, g:php_builtin_functions)
+
+		" Internal solution for finding constants in current file
+		let file = getline(1, '$')
+		call filter(file, 'v:val =~ "define\\s*("')
+		let jfile = join(file, ' ')
+		let int_values = split(jfile, 'define\s*(\s*')
+		let int_constants = {}
+		for i in int_values
+			let c_name = matchstr(i, '\(["'']\)\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\ze\1')
+			" let c_value = matchstr(i,
+			" \ '\(["'']\)[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\1\s*,\s*\zs.\{-}\ze\s*)')
+			if c_name != ''
+				let int_constants[c_name] = '' " c_value
+			endif
+		endfor
+
+		" Prepare list of constants from tags file
+		let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
+		let ext_constants = {}
+		if fnames != ''
+			exe 'silent! vimgrep /^'.a:base.'.*\td\(\t\|$\)/j '.fnames
+			let qflist = getqflist()
+			if len(qflist) > 0
+				for field in qflist
+					let item = matchstr(field['text'], '^[^[:space:]]\+')
+					let ext_constants[item] = ''
+				endfor
+			endif
+		endif
+
+		" All constants
+		call extend(int_constants, ext_constants)
+		" Treat keywords as constants
+
+		let all_values = {}
+
+		" One big dictionary of functions
+		call extend(all_values, int_functions)
+
+		" Add constants
+		call extend(all_values, int_constants)
+		" Add keywords
+		call extend(all_values, g:php_keywords)
+
+		for m in sort(keys(all_values))
+			if m =~ '^'.a:base
+				call add(res, m)
+			endif
+		endfor
+
+		let int_list = res
+
+		let final_list = []
+		for i in int_list
+			if has_key(int_functions, i)
+				let final_list +=
+						\ [{'word':i,
+						\   'info':i.int_functions[i],
+						\   'kind':'f'}]
+			elseif has_key(int_constants, i)
+				let final_list += [{'word':i, 'kind':'d'}]
+			else
+				let final_list += [{'word':i}]
+			endif
+		endfor
+
+		return final_list
+
+	endif
+
+endfunction
+
+function! phpcomplete#GetClassName(scontext) " {{{
+	" Get class name
+	" Class name can be detected in few ways:
+	" @var $myVar class
+	" line above
+	" or line in tags file
+
+	let object = matchstr(a:scontext, '\zs[a-zA-Z_0-9\x7f-\xff]\+\ze->')
+	let i = 1
+	while i < line('.')
+		let line = getline(line('.')-i)
+		if line =~ '^\s*\*\/\?\s*$'
+			let i += 1
+			continue
+		else
+			if line =~ '@var\s\+\$'.object.'\s\+[a-zA-Z_0-9\x7f-\xff]\+'
+				let classname = matchstr(line, '@var\s\+\$'.object.'\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+')
+				return classname
+			else
+				break
+			endif
+		endif
+	endwhile
+
+	" OK, first way failed, now check tags file(s)
+	let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
+	exe 'silent! vimgrep /^'.object.'.*\$'.object.'.*=\s*new\s\+.*\tv\(\t\|$\)/j '.fnames
+	let qflist = getqflist()
+	if len(qflist) == 0
+		return ''
+	else
+		" In all properly managed projects it should be one item list, even if it
+		" *is* longer we cannot solve conflicts, assume it is first element
+		let classname = matchstr(qflist[0]['text'], '=\s*new\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
+		return classname
+	endif
+
+endfunction
+" }}}
+function! phpcomplete#GetClassLocation(classname) " {{{
+	" Check classname may be name of built in object
+	if !exists("g:php_omni_bi_classes")
+		let g:php_omni_bi_classes = {}
+		for i in keys(g:php_builtin_object_functions)
+			let g:php_omni_bi_classes[substitute(i, '::.*$', '', '')] = ''
+		endfor
+	endif
+	if has_key(g:php_omni_bi_classes, a:classname)
+		return 'VIMPHP_BUILTINOBJECT'
+	endif
+
+	" Get class location
+	for fname in tagfiles()
+		let fhead = fnamemodify(fname, ":h")
+		if fhead != ''
+			let psep = '/' " Note: slash is potential problem!
+			let fhead .= psep
+		endif
+		let fname = escape(fname, " \\")
+		exe 'silent! vimgrep /^'.a:classname.'.*\tc\(\t\|$\)/j '.fname
+		let qflist = getqflist()
+		" As in GetClassName we can manage only one element if it exists
+		if len(qflist) > 0
+			let classlocation = matchstr(qflist[0]['text'], '\t\zs\f\+\ze\t')
+		else
+			return ''
+		endif
+		" And only one class location
+		if classlocation != ''
+			let classlocation = fhead.classlocation
+			return classlocation
+		else
+			return ''
+		endif
+	endfor
+
+endfunction
+" }}}
+
+function! phpcomplete#GetClassContents(file, name) " {{{
+	let cfile = join(a:file, "\n")
+	" We use new buffer and (later) normal! because
+	" this is the most efficient way. The other way
+	" is to go through the looong string looking for
+	" matching {}
+	below 1new
+	0put =cfile
+	call search('class\s\+'.a:name)
+	let cfline = line('.')
+	" Catch extends
+	if getline('.') =~ 'extends'
+		let extends_class = matchstr(getline('.'),
+				\ 'class\s\+'.a:name.'\s\+extends\s\+\zs[a-zA-Z_0-9\x7f-\xff]\+\ze')
+	else
+		let extends_class = ''
+	endif
+	call search('{')
+	normal! %
+	let classc = getline(cfline, ".")
+	let classcontent = join(classc, "\n")
+
+	bw! %
+	if extends_class != ''
+		let classlocation = phpcomplete#GetClassLocation(extends_class)
+		if filereadable(classlocation)
+			let classfile = readfile(classlocation)
+			let classcontent .= "\n".phpcomplete#GetClassContents(classfile, extends_class)
+		endif
+	endif
+
+	return classcontent
+endfunction
+" }}}
+
+function! phpcomplete#LoadData() " {{{
+" Keywords/reserved words, all other special things {{{
+" Later it is possible to add some help to values, or type of
+" defined variable
+let g:php_keywords = {
+\ 'PHP_SELF':'',
+\ 'argv':'',
+\ 'argc':'',
+\ 'GATEWAY_INTERFACE':'',
+\ 'SERVER_ADDR':'',
+\ 'SERVER_NAME':'',
+\ 'SERVER_SOFTWARE':'',
+\ 'SERVER_PROTOCOL':'',
+\ 'REQUEST_METHOD':'',
+\ 'REQUEST_TIME':'',
+\ 'QUERY_STRING':'',
+\ 'DOCUMENT_ROOT':'',
+\ 'HTTP_ACCEPT':'',
+\ 'HTTP_ACCEPT_CHARSET':'',
+\ 'HTTP_ACCEPT_ENCODING':'',
+\ 'HTTP_ACCEPT_LANGUAGE':'',
+\ 'HTTP_CONNECTION':'',
+\ 'HTTP_POST':'',
+\ 'HTTP_REFERER':'',
+\ 'HTTP_USER_AGENT':'',
+\ 'HTTPS':'',
+\ 'REMOTE_ADDR':'',
+\ 'REMOTE_HOST':'',
+\ 'REMOTE_PORT':'',
+\ 'SCRIPT_FILENAME':'',
+\ 'SERVER_ADMIN':'',
+\ 'SERVER_PORT':'',
+\ 'SERVER_SIGNATURE':'',
+\ 'PATH_TRANSLATED':'',
+\ 'SCRIPT_NAME':'',
+\ 'REQUEST_URI':'',
+\ 'PHP_AUTH_DIGEST':'',
+\ 'PHP_AUTH_USER':'',
+\ 'PHP_AUTH_PW':'',
+\ 'AUTH_TYPE':'',
+\ 'and':'',
+\ 'or':'',
+\ 'xor':'',
+\ '__FILE__':'',
+\ 'exception':'',
+\ '__LINE__':'',
+\ 'as':'',
+\ 'break':'',
+\ 'case':'',
+\ 'class':'',
+\ 'const':'',
+\ 'continue':'',
+\ 'declare':'',
+\ 'default':'',
+\ 'do':'',
+\ 'echo':'',
+\ 'else':'',
+\ 'elseif':'',
+\ 'enddeclare':'',
+\ 'endfor':'',
+\ 'endforeach':'',
+\ 'endif':'',
+\ 'endswitch':'',
+\ 'endwhile':'',
+\ 'extends':'',
+\ 'for':'',
+\ 'foreach':'',
+\ 'function':'',
+\ 'global':'',
+\ 'if':'',
+\ 'new':'',
+\ 'static':'',
+\ 'switch':'',
+\ 'use':'',
+\ 'var':'',
+\ 'while':'',
+\ '__FUNCTION__':'',
+\ '__CLASS__':'',
+\ '__METHOD__':'',
+\ 'final':'',
+\ 'php_user_filter':'',
+\ 'interface':'',
+\ 'implements':'',
+\ 'public':'',
+\ 'private':'',
+\ 'protected':'',
+\ 'abstract':'',
+\ 'clone':'',
+\ 'try':'',
+\ 'catch':'',
+\ 'throw':'',
+\ 'cfunction':'',
+\ 'old_function':'',
+\ 'this':'',
+\ 'PHP_VERSION': '',
+\ 'PHP_OS': '',
+\ 'PHP_SAPI': '',
+\ 'PHP_EOL': '',
+\ 'PHP_INT_MAX': '',
+\ 'PHP_INT_SIZE': '',
+\ 'DEFAULT_INCLUDE_PATH': '',
+\ 'PEAR_INSTALL_DIR': '',
+\ 'PEAR_EXTENSION_DIR': '',
+\ 'PHP_EXTENSION_DIR': '',
+\ 'PHP_PREFIX': '',
+\ 'PHP_BINDIR': '',
+\ 'PHP_LIBDIR': '',
+\ 'PHP_DATADIR': '',
+\ 'PHP_SYSCONFDIR': '',
+\ 'PHP_LOCALSTATEDIR': '',
+\ 'PHP_CONFIG_FILE_PATH': '',
+\ 'PHP_CONFIG_FILE_SCAN_DIR': '',
+\ 'PHP_SHLIB_SUFFIX': '',
+\ 'PHP_OUTPUT_HANDLER_START': '',
+\ 'PHP_OUTPUT_HANDLER_CONT': '',
+\ 'PHP_OUTPUT_HANDLER_END': '',
+\ 'E_ERROR': '',
+\ 'E_WARNING': '',
+\ 'E_PARSE': '',
+\ 'E_NOTICE': '',
+\ 'E_CORE_ERROR': '',
+\ 'E_CORE_WARNING': '',
+\ 'E_COMPILE_ERROR': '',
+\ 'E_COMPILE_WARNING': '',
+\ 'E_USER_ERROR': '',
+\ 'E_USER_WARNING': '',
+\ 'E_USER_NOTICE': '',
+\ 'E_ALL': '',
+\ 'E_STRICT': '',
+\ '__COMPILER_HALT_OFFSET__': '',
+\ 'EXTR_OVERWRITE': '',
+\ 'EXTR_SKIP': '',
+\ 'EXTR_PREFIX_SAME': '',
+\ 'EXTR_PREFIX_ALL': '',
+\ 'EXTR_PREFIX_INVALID': '',
+\ 'EXTR_PREFIX_IF_EXISTS': '',
+\ 'EXTR_IF_EXISTS': '',
+\ 'SORT_ASC': '',
+\ 'SORT_DESC': '',
+\ 'SORT_REGULAR': '',
+\ 'SORT_NUMERIC': '',
+\ 'SORT_STRING': '',
+\ 'CASE_LOWER': '',
+\ 'CASE_UPPER': '',
+\ 'COUNT_NORMAL': '',
+\ 'COUNT_RECURSIVE': '',
+\ 'ASSERT_ACTIVE': '',
+\ 'ASSERT_CALLBACK': '',
+\ 'ASSERT_BAIL': '',
+\ 'ASSERT_WARNING': '',
+\ 'ASSERT_QUIET_EVAL': '',
+\ 'CONNECTION_ABORTED': '',
+\ 'CONNECTION_NORMAL': '',
+\ 'CONNECTION_TIMEOUT': '',
+\ 'INI_USER': '',
+\ 'INI_PERDIR': '',
+\ 'INI_SYSTEM': '',
+\ 'INI_ALL': '',
+\ 'M_E': '',
+\ 'M_LOG2E': '',
+\ 'M_LOG10E': '',
+\ 'M_LN2': '',
+\ 'M_LN10': '',
+\ 'M_PI': '',
+\ 'M_PI_2': '',
+\ 'M_PI_4': '',
+\ 'M_1_PI': '',
+\ 'M_2_PI': '',
+\ 'M_2_SQRTPI': '',
+\ 'M_SQRT2': '',
+\ 'M_SQRT1_2': '',
+\ 'CRYPT_SALT_LENGTH': '',
+\ 'CRYPT_STD_DES': '',
+\ 'CRYPT_EXT_DES': '',
+\ 'CRYPT_MD5': '',
+\ 'CRYPT_BLOWFISH': '',
+\ 'DIRECTORY_SEPARATOR': '',
+\ 'SEEK_SET': '',
+\ 'SEEK_CUR': '',
+\ 'SEEK_END': '',
+\ 'LOCK_SH': '',
+\ 'LOCK_EX': '',
+\ 'LOCK_UN': '',
+\ 'LOCK_NB': '',
+\ 'HTML_SPECIALCHARS': '',
+\ 'HTML_ENTITIES': '',
+\ 'ENT_COMPAT': '',
+\ 'ENT_QUOTES': '',
+\ 'ENT_NOQUOTES': '',
+\ 'INFO_GENERAL': '',
+\ 'INFO_CREDITS': '',
+\ 'INFO_CONFIGURATION': '',
+\ 'INFO_MODULES': '',
+\ 'INFO_ENVIRONMENT': '',
+\ 'INFO_VARIABLES': '',
+\ 'INFO_LICENSE': '',
+\ 'INFO_ALL': '',
+\ 'CREDITS_GROUP': '',
+\ 'CREDITS_GENERAL': '',
+\ 'CREDITS_SAPI': '',
+\ 'CREDITS_MODULES': '',
+\ 'CREDITS_DOCS': '',
+\ 'CREDITS_FULLPAGE': '',
+\ 'CREDITS_QA': '',
+\ 'CREDITS_ALL': '',
+\ 'STR_PAD_LEFT': '',
+\ 'STR_PAD_RIGHT': '',
+\ 'STR_PAD_BOTH': '',
+\ 'PATHINFO_DIRNAME': '',
+\ 'PATHINFO_BASENAME': '',
+\ 'PATHINFO_EXTENSION': '',
+\ 'PATH_SEPARATOR': '',
+\ 'CHAR_MAX': '',
+\ 'LC_CTYPE': '',
+\ 'LC_NUMERIC': '',
+\ 'LC_TIME': '',
+\ 'LC_COLLATE': '',
+\ 'LC_MONETARY': '',
+\ 'LC_ALL': '',
+\ 'LC_MESSAGES': '',
+\ 'ABDAY_1': '',
+\ 'ABDAY_2': '',
+\ 'ABDAY_3': '',
+\ 'ABDAY_4': '',
+\ 'ABDAY_5': '',
+\ 'ABDAY_6': '',
+\ 'ABDAY_7': '',
+\ 'DAY_1': '',
+\ 'DAY_2': '',
+\ 'DAY_3': '',
+\ 'DAY_4': '',
+\ 'DAY_5': '',
+\ 'DAY_6': '',
+\ 'DAY_7': '',
+\ 'ABMON_1': '',
+\ 'ABMON_2': '',
+\ 'ABMON_3': '',
+\ 'ABMON_4': '',
+\ 'ABMON_5': '',
+\ 'ABMON_6': '',
+\ 'ABMON_7': '',
+\ 'ABMON_8': '',
+\ 'ABMON_9': '',
+\ 'ABMON_10': '',
+\ 'ABMON_11': '',
+\ 'ABMON_12': '',
+\ 'MON_1': '',
+\ 'MON_2': '',
+\ 'MON_3': '',
+\ 'MON_4': '',
+\ 'MON_5': '',
+\ 'MON_6': '',
+\ 'MON_7': '',
+\ 'MON_8': '',
+\ 'MON_9': '',
+\ 'MON_10': '',
+\ 'MON_11': '',
+\ 'MON_12': '',
+\ 'AM_STR': '',
+\ 'PM_STR': '',
+\ 'D_T_FMT': '',
+\ 'D_FMT': '',
+\ 'T_FMT': '',
+\ 'T_FMT_AMPM': '',
+\ 'ERA': '',
+\ 'ERA_YEAR': '',
+\ 'ERA_D_T_FMT': '',
+\ 'ERA_D_FMT': '',
+\ 'ERA_T_FMT': '',
+\ 'ALT_DIGITS': '',
+\ 'INT_CURR_SYMBOL': '',
+\ 'CURRENCY_SYMBOL': '',
+\ 'CRNCYSTR': '',
+\ 'MON_DECIMAL_POINT': '',
+\ 'MON_THOUSANDS_SEP': '',
+\ 'MON_GROUPING': '',
+\ 'POSITIVE_SIGN': '',
+\ 'NEGATIVE_SIGN': '',
+\ 'INT_FRAC_DIGITS': '',
+\ 'FRAC_DIGITS': '',
+\ 'P_CS_PRECEDES': '',
+\ 'P_SEP_BY_SPACE': '',
+\ 'N_CS_PRECEDES': '',
+\ 'N_SEP_BY_SPACE': '',
+\ 'P_SIGN_POSN': '',
+\ 'N_SIGN_POSN': '',
+\ 'DECIMAL_POINT': '',
+\ 'RADIXCHAR': '',
+\ 'THOUSANDS_SEP': '',
+\ 'THOUSEP': '',
+\ 'GROUPING': '',
+\ 'YESEXPR': '',
+\ 'NOEXPR': '',
+\ 'YESSTR': '',
+\ 'NOSTR': '',
+\ 'CODESET': '',
+\ 'LOG_EMERG': '',
+\ 'LOG_ALERT': '',
+\ 'LOG_CRIT': '',
+\ 'LOG_ERR': '',
+\ 'LOG_WARNING': '',
+\ 'LOG_NOTICE': '',
+\ 'LOG_INFO': '',
+\ 'LOG_DEBUG': '',
+\ 'LOG_KERN': '',
+\ 'LOG_USER': '',
+\ 'LOG_MAIL': '',
+\ 'LOG_DAEMON': '',
+\ 'LOG_AUTH': '',
+\ 'LOG_SYSLOG': '',
+\ 'LOG_LPR': '',
+\ 'LOG_NEWS': '',
+\ 'LOG_UUCP': '',
+\ 'LOG_CRON': '',
+\ 'LOG_AUTHPRIV': '',
+\ 'LOG_LOCAL0': '',
+\ 'LOG_LOCAL1': '',
+\ 'LOG_LOCAL2': '',
+\ 'LOG_LOCAL3': '',
+\ 'LOG_LOCAL4': '',
+\ 'LOG_LOCAL5': '',
+\ 'LOG_LOCAL6': '',
+\ 'LOG_LOCAL7': '',
+\ 'LOG_PID': '',
+\ 'LOG_CONS': '',
+\ 'LOG_ODELAY': '',
+\ 'LOG_NDELAY': '',
+\ 'LOG_NOWAIT': '',
+\ 'LOG_PERROR': '',
+\ }
+" }}}
+" PHP builtin functions {{{
+" To create from scratch list of functions:
+" 1. Download multi html file PHP documentation
+" 2. run for i in `ls | grep "^function\."`; do grep -A4 Description $i >> funcs; done
+" 3. Open funcs in Vim and
+"    a) g/Description/normal! 5J
+"    b) remove all html tags (it will require few s/// and g//)
+"    c) :%s/^\([^[:space:]]\+\) \([^[:space:]]\+\) ( \(.*\))/\\ '\2(': '\3| \1',
+"       This will create Dictionary
+"    d) remove all /^[^\\] lines
+let g:php_builtin_functions = {
+\ 'abs(': 'mixed number | number',
+\ 'acosh(': 'float arg | float',
+\ 'acos(': 'float arg | float',
+\ 'addcslashes(': 'string str, string charlist | string',
+\ 'addslashes(': 'string str | string',
+\ 'aggregate(': 'object object, string class_name | void',
+\ 'aggregate_info(': 'object object | array',
+\ 'aggregate_methods_by_list(': 'object object, string class_name, array methods_list [, bool exclude] | void',
+\ 'aggregate_methods_by_regexp(': 'object object, string class_name, string regexp [, bool exclude] | void',
+\ 'aggregate_methods(': 'object object, string class_name | void',
+\ 'aggregate_properties_by_list(': 'object object, string class_name, array properties_list [, bool exclude] | void',
+\ 'aggregate_properties_by_regexp(': 'object object, string class_name, string regexp [, bool exclude] | void',
+\ 'aggregate_properties(': 'object object, string class_name | void',
+\ 'apache_child_terminate(': 'void  | bool',
+\ 'apache_getenv(': 'string variable [, bool walk_to_top] | string',
+\ 'apache_get_modules(': 'void  | array',
+\ 'apache_get_version(': 'void  | string',
+\ 'apache_lookup_uri(': 'string filename | object',
+\ 'apache_note(': 'string note_name [, string note_value] | string',
+\ 'apache_request_headers(': 'void  | array',
+\ 'apache_reset_timeout(': 'void  | bool',
+\ 'apache_response_headers(': 'void  | array',
+\ 'apache_setenv(': 'string variable, string value [, bool walk_to_top] | bool',
+\ 'apc_cache_info(': '[string cache_type] | array',
+\ 'apc_clear_cache(': '[string cache_type] | bool',
+\ 'apc_define_constants(': 'string key, array constants [, bool case_sensitive] | bool',
+\ 'apc_delete(': 'string key | bool',
+\ 'apc_fetch(': 'string key | mixed',
+\ 'apc_load_constants(': 'string key [, bool case_sensitive] | bool',
+\ 'apc_sma_info(': 'void  | array',
+\ 'apc_store(': 'string key, mixed var [, int ttl] | bool',
+\ 'apd_breakpoint(': 'int debug_level | bool',
+\ 'apd_callstack(': 'void  | array',
+\ 'apd_clunk(': 'string warning [, string delimiter] | void',
+\ 'apd_continue(': 'int debug_level | bool',
+\ 'apd_croak(': 'string warning [, string delimiter] | void',
+\ 'apd_dump_function_table(': 'void  | void',
+\ 'apd_dump_persistent_resources(': 'void  | array',
+\ 'apd_dump_regular_resources(': 'void  | array',
+\ 'apd_echo(': 'string output | bool',
+\ 'apd_get_active_symbols(': ' | array',
+\ 'apd_set_pprof_trace(': '[string dump_directory] | void',
+\ 'apd_set_session(': 'int debug_level | void',
+\ 'apd_set_session_trace(': 'int debug_level [, string dump_directory] | void',
+\ 'apd_set_socket_session_trace(': 'string ip_address_or_unix_socket_file, int socket_type, int port, int debug_level | bool',
+\ 'array_change_key_case(': 'array input [, int case] | array',
+\ 'array_chunk(': 'array input, int size [, bool preserve_keys] | array',
+\ 'array_combine(': 'array keys, array values | array',
+\ 'array_count_values(': 'array input | array',
+\ 'array_diff_assoc(': 'array array1, array array2 [, array ...] | array',
+\ 'array_diff(': 'array array1, array array2 [, array ...] | array',
+\ 'array_diff_key(': 'array array1, array array2 [, array ...] | array',
+\ 'array_diff_uassoc(': 'array array1, array array2 [, array ..., callback key_compare_func] | array',
+\ 'array_diff_ukey(': 'array array1, array array2 [, array ..., callback key_compare_func] | array',
+\ 'array_fill(': 'int start_index, int num, mixed value | array',
+\ 'array_filter(': 'array input [, callback callback] | array',
+\ 'array_flip(': 'array trans | array',
+\ 'array(': '[mixed ...] | array',
+\ 'array_intersect_assoc(': 'array array1, array array2 [, array ...] | array',
+\ 'array_intersect(': 'array array1, array array2 [, array ...] | array',
+\ 'array_intersect_key(': 'array array1, array array2 [, array ...] | array',
+\ 'array_intersect_uassoc(': 'array array1, array array2 [, array ..., callback key_compare_func] | array',
+\ 'array_intersect_ukey(': 'array array1, array array2 [, array ..., callback key_compare_func] | array',
+\ 'array_key_exists(': 'mixed key, array search | bool',
+\ 'array_keys(': 'array input [, mixed search_value [, bool strict]] | array',
+\ 'array_map(': 'callback callback, array arr1 [, array ...] | array',
+\ 'array_merge(': 'array array1 [, array array2 [, array ...]] | array',
+\ 'array_merge_recursive(': 'array array1 [, array ...] | array',
+\ 'array_multisort(': 'array ar1 [, mixed arg [, mixed ... [, array ...]]] | bool',
+\ 'array_pad(': 'array input, int pad_size, mixed pad_value | array',
+\ 'array_pop(': 'array &#38;array | mixed',
+\ 'array_product(': 'array array | number',
+\ 'array_push(': 'array &#38;array, mixed var [, mixed ...] | int',
+\ 'array_rand(': 'array input [, int num_req] | mixed',
+\ 'array_reduce(': 'array input, callback function [, int initial] | mixed',
+\ 'array_reverse(': 'array array [, bool preserve_keys] | array',
+\ 'array_search(': 'mixed needle, array haystack [, bool strict] | mixed',
+\ 'array_shift(': 'array &#38;array | mixed',
+\ 'array_slice(': 'array array, int offset [, int length [, bool preserve_keys]] | array',
+\ 'array_splice(': 'array &#38;input, int offset [, int length [, array replacement]] | array',
+\ 'array_sum(': 'array array | number',
+\ 'array_udiff_assoc(': 'array array1, array array2 [, array ..., callback data_compare_func] | array',
+\ 'array_udiff(': 'array array1, array array2 [, array ..., callback data_compare_func] | array',
+\ 'array_udiff_uassoc(': 'array array1, array array2 [, array ..., callback data_compare_func, callback key_compare_func] | array',
+\ 'array_uintersect_assoc(': 'array array1, array array2 [, array ..., callback data_compare_func] | array',
+\ 'array_uintersect(': 'array array1, array array2 [, array ..., callback data_compare_func] | array',
+\ 'array_uintersect_uassoc(': 'array array1, array array2 [, array ..., callback data_compare_func, callback key_compare_func] | array',
+\ 'array_unique(': 'array array | array',
+\ 'array_unshift(': 'array &#38;array, mixed var [, mixed ...] | int',
+\ 'array_values(': 'array input | array',
+\ 'array_walk(': 'array &#38;array, callback funcname [, mixed userdata] | bool',
+\ 'array_walk_recursive(': 'array &#38;input, callback funcname [, mixed userdata] | bool',
+\ 'arsort(': 'array &#38;array [, int sort_flags] | bool',
+\ 'ascii2ebcdic(': 'string ascii_str | int',
+\ 'asinh(': 'float arg | float',
+\ 'asin(': 'float arg | float',
+\ 'asort(': 'array &#38;array [, int sort_flags] | bool',
+\ 'aspell_check(': 'int dictionary_link, string word | bool',
+\ 'aspell_check_raw(': 'int dictionary_link, string word | bool',
+\ 'aspell_new(': 'string master [, string personal] | int',
+\ 'aspell_suggest(': 'int dictionary_link, string word | array',
+\ 'assert(': 'mixed assertion | bool',
+\ 'assert_options(': 'int what [, mixed value] | mixed',
+\ 'atan2(': 'float y, float x | float',
+\ 'atanh(': 'float arg | float',
+\ 'atan(': 'float arg | float',
+\ 'base64_decode(': 'string encoded_data | string',
+\ 'base64_encode(': 'string data | string',
+\ 'base_convert(': 'string number, int frombase, int tobase | string',
+\ 'basename(': 'string path [, string suffix] | string',
+\ 'bcadd(': 'string left_operand, string right_operand [, int scale] | string',
+\ 'bccomp(': 'string left_operand, string right_operand [, int scale] | int',
+\ 'bcdiv(': 'string left_operand, string right_operand [, int scale] | string',
+\ 'bcmod(': 'string left_operand, string modulus | string',
+\ 'bcmul(': 'string left_operand, string right_operand [, int scale] | string',
+\ 'bcompiler_load_exe(': 'string filename | bool',
+\ 'bcompiler_load(': 'string filename | bool',
+\ 'bcompiler_parse_class(': 'string class, string callback | bool',
+\ 'bcompiler_read(': 'resource filehandle | bool',
+\ 'bcompiler_write_class(': 'resource filehandle, string className [, string extends] | bool',
+\ 'bcompiler_write_constant(': 'resource filehandle, string constantName | bool',
+\ 'bcompiler_write_exe_footer(': 'resource filehandle, int startpos | bool',
+\ 'bcompiler_write_file(': 'resource filehandle, string filename | bool',
+\ 'bcompiler_write_footer(': 'resource filehandle | bool',
+\ 'bcompiler_write_function(': 'resource filehandle, string functionName | bool',
+\ 'bcompiler_write_functions_from_file(': 'resource filehandle, string fileName | bool',
+\ 'bcompiler_write_header(': 'resource filehandle [, string write_ver] | bool',
+\ 'bcpow(': 'string x, string y [, int scale] | string',
+\ 'bcpowmod(': 'string x, string y, string modulus [, int scale] | string',
+\ 'bcscale(': 'int scale | bool',
+\ 'bcsqrt(': 'string operand [, int scale] | string',
+\ 'bcsub(': 'string left_operand, string right_operand [, int scale] | string',
+\ 'bin2hex(': 'string str | string',
+\ 'bindec(': 'string binary_string | number',
+\ 'bind_textdomain_codeset(': 'string domain, string codeset | string',
+\ 'bindtextdomain(': 'string domain, string directory | string',
+\ 'bzclose(': 'resource bz | int',
+\ 'bzcompress(': 'string source [, int blocksize [, int workfactor]] | mixed',
+\ 'bzdecompress(': 'string source [, int small] | mixed',
+\ 'bzerrno(': 'resource bz | int',
+\ 'bzerror(': 'resource bz | array',
+\ 'bzerrstr(': 'resource bz | string',
+\ 'bzflush(': 'resource bz | int',
+\ 'bzopen(': 'string filename, string mode | resource',
+\ 'bzread(': 'resource bz [, int length] | string',
+\ 'bzwrite(': 'resource bz, string data [, int length] | int',
+\ 'cal_days_in_month(': 'int calendar, int month, int year | int',
+\ 'cal_from_jd(': 'int jd, int calendar | array',
+\ 'cal_info(': '[int calendar] | array',
+\ 'call_user_func_array(': 'callback function, array param_arr | mixed',
+\ 'call_user_func(': 'callback function [, mixed parameter [, mixed ...]] | mixed',
+\ 'call_user_method_array(': 'string method_name, object &#38;obj, array paramarr | mixed',
+\ 'call_user_method(': 'string method_name, object &#38;obj [, mixed parameter [, mixed ...]] | mixed',
+\ 'cal_to_jd(': 'int calendar, int month, int day, int year | int',
+\ 'ccvs_add(': 'string session, string invoice, string argtype, string argval | string',
+\ 'ccvs_auth(': 'string session, string invoice | string',
+\ 'ccvs_command(': 'string session, string type, string argval | string',
+\ 'ccvs_count(': 'string session, string type | int',
+\ 'ccvs_delete(': 'string session, string invoice | string',
+\ 'ccvs_done(': 'string sess | string',
+\ 'ccvs_init(': 'string name | string',
+\ 'ccvs_lookup(': 'string session, string invoice, int inum | string',
+\ 'ccvs_new(': 'string session, string invoice | string',
+\ 'ccvs_report(': 'string session, string type | string',
+\ 'ccvs_return(': 'string session, string invoice | string',
+\ 'ccvs_reverse(': 'string session, string invoice | string',
+\ 'ccvs_sale(': 'string session, string invoice | string',
+\ 'ccvs_status(': 'string session, string invoice | string',
+\ 'ccvs_textvalue(': 'string session | string',
+\ 'ccvs_void(': 'string session, string invoice | string',
+\ 'ceil(': 'float value | float',
+\ 'chdir(': 'string directory | bool',
+\ 'checkdate(': 'int month, int day, int year | bool',
+\ 'checkdnsrr(': 'string host [, string type] | int',
+\ 'chgrp(': 'string filename, mixed group | bool',
+\ 'chmod(': 'string filename, int mode | bool',
+\ 'chown(': 'string filename, mixed user | bool',
+\ 'chr(': 'int ascii | string',
+\ 'chroot(': 'string directory | bool',
+\ 'chunk_split(': 'string body [, int chunklen [, string end]] | string',
+\ 'class_exists(': 'string class_name [, bool autoload] | bool',
+\ 'class_implements(': 'mixed class [, bool autoload] | array',
+\ 'classkit_import(': 'string filename | array',
+\ 'classkit_method_add(': 'string classname, string methodname, string args, string code [, int flags] | bool',
+\ 'classkit_method_copy(': 'string dClass, string dMethod, string sClass [, string sMethod] | bool',
+\ 'classkit_method_redefine(': 'string classname, string methodname, string args, string code [, int flags] | bool',
+\ 'classkit_method_remove(': 'string classname, string methodname | bool',
+\ 'classkit_method_rename(': 'string classname, string methodname, string newname | bool',
+\ 'class_parents(': 'mixed class [, bool autoload] | array',
+\ 'clearstatcache(': 'void  | void',
+\ 'closedir(': 'resource dir_handle | void',
+\ 'closelog(': 'void  | bool',
+\ 'com_addref(': 'void  | void',
+\ 'com_create_guid(': 'void  | string',
+\ 'com_event_sink(': 'variant comobject, object sinkobject [, mixed sinkinterface] | bool',
+\ 'com_get_active_object(': 'string progid [, int code_page] | variant',
+\ 'com_get(': 'resource com_object, string property | mixed',
+\ 'com_invoke(': 'resource com_object, string function_name [, mixed function_parameters] | mixed',
+\ 'com_isenum(': 'variant com_module | bool',
+\ 'com_load(': 'string module_name [, string server_name [, int codepage]] | resource',
+\ 'com_load_typelib(': 'string typelib_name [, bool case_insensitive] | bool',
+\ 'com_message_pump(': '[int timeoutms] | bool',
+\ 'compact(': 'mixed varname [, mixed ...] | array',
+\ 'com_print_typeinfo(': 'object comobject [, string dispinterface [, bool wantsink]] | bool',
+\ 'com_release(': 'void  | void',
+\ 'com_set(': 'resource com_object, string property, mixed value | void',
+\ 'connection_aborted(': 'void  | int',
+\ 'connection_status(': 'void  | int',
+\ 'connection_timeout(': 'void  | bool',
+\ 'constant(': 'string name | mixed',
+\ 'convert_cyr_string(': 'string str, string from, string to | string',
+\ 'convert_uudecode(': 'string data | string',
+\ 'convert_uuencode(': 'string data | string',
+\ 'copy(': 'string source, string dest | bool',
+\ 'cosh(': 'float arg | float',
+\ 'cos(': 'float arg | float',
+\ 'count_chars(': 'string string [, int mode] | mixed',
+\ 'count(': 'mixed var [, int mode] | int',
+\ 'cpdf_add_annotation(': 'int pdf_document, float llx, float lly, float urx, float ury, string title, string content [, int mode] | bool',
+\ 'cpdf_add_outline(': 'int pdf_document, int lastoutline, int sublevel, int open, int pagenr, string text | int',
+\ 'cpdf_arc(': 'int pdf_document, float x_coor, float y_coor, float radius, float start, float end [, int mode] | bool',
+\ 'cpdf_begin_text(': 'int pdf_document | bool',
+\ 'cpdf_circle(': 'int pdf_document, float x_coor, float y_coor, float radius [, int mode] | bool',
+\ 'cpdf_clip(': 'int pdf_document | bool',
+\ 'cpdf_close(': 'int pdf_document | bool',
+\ 'cpdf_closepath_fill_stroke(': 'int pdf_document | bool',
+\ 'cpdf_closepath(': 'int pdf_document | bool',
+\ 'cpdf_closepath_stroke(': 'int pdf_document | bool',
+\ 'cpdf_continue_text(': 'int pdf_document, string text | bool',
+\ 'cpdf_curveto(': 'int pdf_document, float x1, float y1, float x2, float y2, float x3, float y3 [, int mode] | bool',
+\ 'cpdf_end_text(': 'int pdf_document | bool',
+\ 'cpdf_fill(': 'int pdf_document | bool',
+\ 'cpdf_fill_stroke(': 'int pdf_document | bool',
+\ 'cpdf_finalize(': 'int pdf_document | bool',
+\ 'cpdf_finalize_page(': 'int pdf_document, int page_number | bool',
+\ 'cpdf_global_set_document_limits(': 'int maxpages, int maxfonts, int maximages, int maxannotations, int maxobjects | bool',
+\ 'cpdf_import_jpeg(': 'int pdf_document, string file_name, float x_coor, float y_coor, float angle, float width, float height, float x_scale, float y_scale, int gsave [, int mode] | bool',
+\ 'cpdf_lineto(': 'int pdf_document, float x_coor, float y_coor [, int mode] | bool',
+\ 'cpdf_moveto(': 'int pdf_document, float x_coor, float y_coor [, int mode] | bool',
+\ 'cpdf_newpath(': 'int pdf_document | bool',
+\ 'cpdf_open(': 'int compression [, string filename [, array doc_limits]] | int',
+\ 'cpdf_output_buffer(': 'int pdf_document | bool',
+\ 'cpdf_page_init(': 'int pdf_document, int page_number, int orientation, float height, float width [, float unit] | bool',
+\ 'cpdf_place_inline_image(': 'int pdf_document, int image, float x_coor, float y_coor, float angle, float width, float height, int gsave [, int mode] | bool',
+\ 'cpdf_rect(': 'int pdf_document, float x_coor, float y_coor, float width, float height [, int mode] | bool',
+\ 'cpdf_restore(': 'int pdf_document | bool',
+\ 'cpdf_rlineto(': 'int pdf_document, float x_coor, float y_coor [, int mode] | bool',
+\ 'cpdf_rmoveto(': 'int pdf_document, float x_coor, float y_coor [, int mode] | bool',
+\ 'cpdf_rotate(': 'int pdf_document, float angle | bool',
+\ 'cpdf_rotate_text(': 'int pdfdoc, float angle | bool',
+\ 'cpdf_save(': 'int pdf_document | bool',
+\ 'cpdf_save_to_file(': 'int pdf_document, string filename | bool',
+\ 'cpdf_scale(': 'int pdf_document, float x_scale, float y_scale | bool',
+\ 'cpdf_set_action_url(': 'int pdfdoc, float xll, float yll, float xur, float xur, string url [, int mode] | bool',
+\ 'cpdf_set_char_spacing(': 'int pdf_document, float space | bool',
+\ 'cpdf_set_creator(': 'int pdf_document, string creator | bool',
+\ 'cpdf_set_current_page(': 'int pdf_document, int page_number | bool',
+\ 'cpdf_setdash(': 'int pdf_document, float white, float black | bool',
+\ 'cpdf_setflat(': 'int pdf_document, float value | bool',
+\ 'cpdf_set_font_directories(': 'int pdfdoc, string pfmdir, string pfbdir | bool',
+\ 'cpdf_set_font(': 'int pdf_document, string font_name, float size, string encoding | bool',
+\ 'cpdf_set_font_map_file(': 'int pdfdoc, string filename | bool',
+\ 'cpdf_setgray_fill(': 'int pdf_document, float value | bool',
+\ 'cpdf_setgray(': 'int pdf_document, float gray_value | bool',
+\ 'cpdf_setgray_stroke(': 'int pdf_document, float gray_value | bool',
+\ 'cpdf_set_horiz_scaling(': 'int pdf_document, float scale | bool',
+\ 'cpdf_set_keywords(': 'int pdf_document, string keywords | bool',
+\ 'cpdf_set_leading(': 'int pdf_document, float distance | bool',
+\ 'cpdf_setlinecap(': 'int pdf_document, int value | bool',
+\ 'cpdf_setlinejoin(': 'int pdf_document, int value | bool',
+\ 'cpdf_setlinewidth(': 'int pdf_document, float width | bool',
+\ 'cpdf_setmiterlimit(': 'int pdf_document, float value | bool',
+\ 'cpdf_set_page_animation(': 'int pdf_document, int transition, float duration, float direction, int orientation, int inout | bool',
+\ 'cpdf_setrgbcolor_fill(': 'int pdf_document, float red_value, float green_value, float blue_value | bool',
+\ 'cpdf_setrgbcolor(': 'int pdf_document, float red_value, float green_value, float blue_value | bool',
+\ 'cpdf_setrgbcolor_stroke(': 'int pdf_document, float red_value, float green_value, float blue_value | bool',
+\ 'cpdf_set_subject(': 'int pdf_document, string subject | bool',
+\ 'cpdf_set_text_matrix(': 'int pdf_document, array matrix | bool',
+\ 'cpdf_set_text_pos(': 'int pdf_document, float x_coor, float y_coor [, int mode] | bool',
+\ 'cpdf_set_text_rendering(': 'int pdf_document, int rendermode | bool',
+\ 'cpdf_set_text_rise(': 'int pdf_document, float value | bool',
+\ 'cpdf_set_title(': 'int pdf_document, string title | bool',
+\ 'cpdf_set_viewer_preferences(': 'int pdfdoc, array preferences | bool',
+\ 'cpdf_set_word_spacing(': 'int pdf_document, float space | bool',
+\ 'cpdf_show(': 'int pdf_document, string text | bool',
+\ 'cpdf_show_xy(': 'int pdf_document, string text, float x_coor, float y_coor [, int mode] | bool',
+\ 'cpdf_stringwidth(': 'int pdf_document, string text | float',
+\ 'cpdf_stroke(': 'int pdf_document | bool',
+\ 'cpdf_text(': 'int pdf_document, string text [, float x_coor, float y_coor [, int mode [, float orientation [, int alignmode]]]] | bool',
+\ 'cpdf_translate(': 'int pdf_document, float x_coor, float y_coor | bool',
+\ 'crack_check(': 'resource dictionary, string password | bool',
+\ 'crack_closedict(': '[resource dictionary] | bool',
+\ 'crack_getlastmessage(': 'void  | string',
+\ 'crack_opendict(': 'string dictionary | resource',
+\ 'crc32(': 'string str | int',
+\ 'create_function(': 'string args, string code | string',
+\ 'crypt(': 'string str [, string salt] | string',
+\ 'ctype_alnum(': 'string text | bool',
+\ 'ctype_alpha(': 'string text | bool',
+\ 'ctype_cntrl(': 'string text | bool',
+\ 'ctype_digit(': 'string text | bool',
+\ 'ctype_graph(': 'string text | bool',
+\ 'ctype_lower(': 'string text | bool',
+\ 'ctype_print(': 'string text | bool',
+\ 'ctype_punct(': 'string text | bool',
+\ 'ctype_space(': 'string text | bool',
+\ 'ctype_upper(': 'string text | bool',
+\ 'ctype_xdigit(': 'string text | bool',
+\ 'curl_close(': 'resource ch | void',
+\ 'curl_copy_handle(': 'resource ch | resource',
+\ 'curl_errno(': 'resource ch | int',
+\ 'curl_error(': 'resource ch | string',
+\ 'curl_exec(': 'resource ch | mixed',
+\ 'curl_getinfo(': 'resource ch [, int opt] | mixed',
+\ 'curl_init(': '[string url] | resource',
+\ 'curl_multi_add_handle(': 'resource mh, resource ch | int',
+\ 'curl_multi_close(': 'resource mh | void',
+\ 'curl_multi_exec(': 'resource mh, int &#38;still_running | int',
+\ 'curl_multi_getcontent(': 'resource ch | string',
+\ 'curl_multi_info_read(': 'resource mh | array',
+\ 'curl_multi_init(': 'void  | resource',
+\ 'curl_multi_remove_handle(': 'resource mh, resource ch | int',
+\ 'curl_multi_select(': 'resource mh [, float timeout] | int',
+\ 'curl_setopt(': 'resource ch, int option, mixed value | bool',
+\ 'curl_version(': '[int version] | array',
+\ 'current(': 'array &#38;array | mixed',
+\ 'cybercash_base64_decode(': 'string inbuff | string',
+\ 'cybercash_base64_encode(': 'string inbuff | string',
+\ 'cybercash_decr(': 'string wmk, string sk, string inbuff | array',
+\ 'cybercash_encr(': 'string wmk, string sk, string inbuff | array',
+\ 'cybermut_creerformulairecm(': 'string url_cm, string version, string tpe, string price, string ref_command, string text_free, string url_return, string url_return_ok, string url_return_err, string language, string code_company, string text_button | string',
+\ 'cybermut_creerreponsecm(': 'string sentence | string',
+\ 'cybermut_testmac(': 'string code_mac, string version, string tpe, string cdate, string price, string ref_command, string text_free, string code_return | bool',
+\ 'cyrus_authenticate(': 'resource connection [, string mechlist [, string service [, string user [, int minssf [, int maxssf [, string authname [, string password]]]]]]] | void',
+\ 'cyrus_bind(': 'resource connection, array callbacks | bool',
+\ 'cyrus_close(': 'resource connection | bool',
+\ 'cyrus_connect(': '[string host [, string port [, int flags]]] | resource',
+\ 'cyrus_query(': 'resource connection, string query | array',
+\ 'cyrus_unbind(': 'resource connection, string trigger_name | bool',
+\ 'date_default_timezone_get(': 'void  | string',
+\ 'date_default_timezone_set(': 'string timezone_identifier | bool',
+\ 'date(': 'string format [, int timestamp] | string',
+\ 'date_sunrise(': 'int timestamp [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]] | mixed',
+\ 'date_sunset(': 'int timestamp [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]] | mixed',
+\ 'db2_autocommit(': 'resource connection [, bool value] | mixed',
+\ 'db2_bind_param(': 'resource stmt, int parameter-number, string variable-name [, int parameter-type [, int data-type [, int precision [, int scale]]]] | bool',
+\ 'db2_client_info(': 'resource connection | object',
+\ 'db2_close(': 'resource connection | bool',
+\ 'db2_column_privileges(': 'resource connection [, string qualifier [, string schema [, string table-name [, string column-name]]]] | resource',
+\ 'db2_columns(': 'resource connection [, string qualifier [, string schema [, string table-name [, string column-name]]]] | resource',
+\ 'db2_commit(': 'resource connection | bool',
+\ 'db2_connect(': 'string database, string username, string password [, array options] | resource',
+\ 'db2_conn_error(': '[resource connection] | string',
+\ 'db2_conn_errormsg(': '[resource connection] | string',
+\ 'db2_cursor_type(': 'resource stmt | int',
+\ 'db2_exec(': 'resource connection, string statement [, array options] | resource',
+\ 'db2_execute(': 'resource stmt [, array parameters] | bool',
+\ 'db2_fetch_array(': 'resource stmt [, int row_number] | array',
+\ 'db2_fetch_assoc(': 'resource stmt [, int row_number] | array',
+\ 'db2_fetch_both(': 'resource stmt [, int row_number] | array',
+\ 'db2_fetch_object(': 'resource stmt [, int row_number] | object',
+\ 'db2_fetch_row(': 'resource stmt [, int row_number] | bool',
+\ 'db2_field_display_size(': 'resource stmt, mixed column | int',
+\ 'db2_field_name(': 'resource stmt, mixed column | string',
+\ 'db2_field_num(': 'resource stmt, mixed column | int',
+\ 'db2_field_precision(': 'resource stmt, mixed column | int',
+\ 'db2_field_scale(': 'resource stmt, mixed column | int',
+\ 'db2_field_type(': 'resource stmt, mixed column | string',
+\ 'db2_field_width(': 'resource stmt, mixed column | int',
+\ 'db2_foreign_keys(': 'resource connection, string qualifier, string schema, string table-name | resource',
+\ 'db2_free_result(': 'resource stmt | bool',
+\ 'db2_free_stmt(': 'resource stmt | bool',
+\ 'db2_next_result(': 'resource stmt | resource',
+\ 'db2_num_fields(': 'resource stmt | int',
+\ 'db2_num_rows(': 'resource stmt | int',
+\ 'db2_pconnect(': 'string database, string username, string password [, array options] | resource',
+\ 'db2_prepare(': 'resource connection, string statement [, array options] | resource',
+\ 'db2_primary_keys(': 'resource connection, string qualifier, string schema, string table-name | resource',
+\ 'db2_procedure_columns(': 'resource connection, string qualifier, string schema, string procedure, string parameter | resource',
+\ 'db2_procedures(': 'resource connection, string qualifier, string schema, string procedure | resource',
+\ 'db2_result(': 'resource stmt, mixed column | mixed',
+\ 'db2_rollback(': 'resource connection | bool',
+\ 'db2_server_info(': 'resource connection | object',
+\ 'db2_special_columns(': 'resource connection, string qualifier, string schema, string table_name, int scope | resource',
+\ 'db2_statistics(': 'resource connection, string qualifier, string schema, string table-name, bool unique | resource',
+\ 'db2_stmt_error(': '[resource stmt] | string',
+\ 'db2_stmt_errormsg(': '[resource stmt] | string',
+\ 'db2_table_privileges(': 'resource connection [, string qualifier [, string schema [, string table_name]]] | resource',
+\ 'db2_tables(': 'resource connection [, string qualifier [, string schema [, string table-name [, string table-type]]]] | resource',
+\ 'dba_close(': 'resource handle | void',
+\ 'dba_delete(': 'string key, resource handle | bool',
+\ 'dba_exists(': 'string key, resource handle | bool',
+\ 'dba_fetch(': 'string key, resource handle | string',
+\ 'dba_firstkey(': 'resource handle | string',
+\ 'dba_handlers(': '[bool full_info] | array',
+\ 'dba_insert(': 'string key, string value, resource handle | bool',
+\ 'dba_key_split(': 'mixed key | mixed',
+\ 'dba_list(': 'void  | array',
+\ 'dba_nextkey(': 'resource handle | string',
+\ 'dba_open(': 'string path, string mode [, string handler [, mixed ...]] | resource',
+\ 'dba_optimize(': 'resource handle | bool',
+\ 'dba_popen(': 'string path, string mode [, string handler [, mixed ...]] | resource',
+\ 'dba_replace(': 'string key, string value, resource handle | bool',
+\ 'dbase_add_record(': 'int dbase_identifier, array record | bool',
+\ 'dbase_close(': 'int dbase_identifier | bool',
+\ 'dbase_create(': 'string filename, array fields | int',
+\ 'dbase_delete_record(': 'int dbase_identifier, int record_number | bool',
+\ 'dbase_get_header_info(': 'int dbase_identifier | array',
+\ 'dbase_get_record(': 'int dbase_identifier, int record_number | array',
+\ 'dbase_get_record_with_names(': 'int dbase_identifier, int record_number | array',
+\ 'dbase_numfields(': 'int dbase_identifier | int',
+\ 'dbase_numrecords(': 'int dbase_identifier | int',
+\ 'dbase_open(': 'string filename, int mode | int',
+\ 'dbase_pack(': 'int dbase_identifier | bool',
+\ 'dbase_replace_record(': 'int dbase_identifier, array record, int record_number | bool',
+\ 'dba_sync(': 'resource handle | bool',
+\ 'dblist(': 'void  | string',
+\ 'dbmclose(': 'resource dbm_identifier | bool',
+\ 'dbmdelete(': 'resource dbm_identifier, string key | bool',
+\ 'dbmexists(': 'resource dbm_identifier, string key | bool',
+\ 'dbmfetch(': 'resource dbm_identifier, string key | string',
+\ 'dbmfirstkey(': 'resource dbm_identifier | string',
+\ 'dbminsert(': 'resource dbm_identifier, string key, string value | int',
+\ 'dbmnextkey(': 'resource dbm_identifier, string key | string',
+\ 'dbmopen(': 'string filename, string flags | resource',
+\ 'dbmreplace(': 'resource dbm_identifier, string key, string value | int',
+\ 'dbplus_add(': 'resource relation, array tuple | int',
+\ 'dbplus_aql(': 'string query [, string server [, string dbpath]] | resource',
+\ 'dbplus_chdir(': '[string newdir] | string',
+\ 'dbplus_close(': 'resource relation | mixed',
+\ 'dbplus_curr(': 'resource relation, array &#38;tuple | int',
+\ 'dbplus_errcode(': '[int errno] | string',
+\ 'dbplus_errno(': 'void  | int',
+\ 'dbplus_find(': 'resource relation, array constraints, mixed tuple | int',
+\ 'dbplus_first(': 'resource relation, array &#38;tuple | int',
+\ 'dbplus_flush(': 'resource relation | int',
+\ 'dbplus_freealllocks(': 'void  | int',
+\ 'dbplus_freelock(': 'resource relation, string tname | int',
+\ 'dbplus_freerlocks(': 'resource relation | int',
+\ 'dbplus_getlock(': 'resource relation, string tname | int',
+\ 'dbplus_getunique(': 'resource relation, int uniqueid | int',
+\ 'dbplus_info(': 'resource relation, string key, array &#38;result | int',
+\ 'dbplus_last(': 'resource relation, array &#38;tuple | int',
+\ 'dbplus_lockrel(': 'resource relation | int',
+\ 'dbplus_next(': 'resource relation, array &#38;tuple | int',
+\ 'dbplus_open(': 'string name | resource',
+\ 'dbplus_prev(': 'resource relation, array &#38;tuple | int',
+\ 'dbplus_rchperm(': 'resource relation, int mask, string user, string group | int',
+\ 'dbplus_rcreate(': 'string name, mixed domlist [, bool overwrite] | resource',
+\ 'dbplus_rcrtexact(': 'string name, resource relation [, bool overwrite] | mixed',
+\ 'dbplus_rcrtlike(': 'string name, resource relation [, int overwrite] | mixed',
+\ 'dbplus_resolve(': 'string relation_name | array',
+\ 'dbplus_restorepos(': 'resource relation, array tuple | int',
+\ 'dbplus_rkeys(': 'resource relation, mixed domlist | mixed',
+\ 'dbplus_ropen(': 'string name | resource',
+\ 'dbplus_rquery(': 'string query [, string dbpath] | resource',
+\ 'dbplus_rrename(': 'resource relation, string name | int',
+\ 'dbplus_rsecindex(': 'resource relation, mixed domlist, int type | mixed',
+\ 'dbplus_runlink(': 'resource relation | int',
+\ 'dbplus_rzap(': 'resource relation | int',
+\ 'dbplus_savepos(': 'resource relation | int',
+\ 'dbplus_setindexbynumber(': 'resource relation, int idx_number | int',
+\ 'dbplus_setindex(': 'resource relation, string idx_name | int',
+\ 'dbplus_sql(': 'string query [, string server [, string dbpath]] | resource',
+\ 'dbplus_tcl(': 'int sid, string script | string',
+\ 'dbplus_tremove(': 'resource relation, array tuple [, array &#38;current] | int',
+\ 'dbplus_undo(': 'resource relation | int',
+\ 'dbplus_undoprepare(': 'resource relation | int',
+\ 'dbplus_unlockrel(': 'resource relation | int',
+\ 'dbplus_unselect(': 'resource relation | int',
+\ 'dbplus_update(': 'resource relation, array old, array new | int',
+\ 'dbplus_xlockrel(': 'resource relation | int',
+\ 'dbplus_xunlockrel(': 'resource relation | int',
+\ 'dbx_close(': 'object link_identifier | bool',
+\ 'dbx_compare(': 'array row_a, array row_b, string column_key [, int flags] | int',
+\ 'dbx_connect(': 'mixed module, string host, string database, string username, string password [, int persistent] | object',
+\ 'dbx_error(': 'object link_identifier | string',
+\ 'dbx_escape_string(': 'object link_identifier, string text | string',
+\ 'dbx_fetch_row(': 'object result_identifier | mixed',
+\ 'dbx_query(': 'object link_identifier, string sql_statement [, int flags] | mixed',
+\ 'dbx_sort(': 'object result, string user_compare_function | bool',
+\ 'dcgettext(': 'string domain, string message, int category | string',
+\ 'dcngettext(': 'string domain, string msgid1, string msgid2, int n, int category | string',
+\ 'deaggregate(': 'object object [, string class_name] | void',
+\ 'debug_backtrace(': 'void  | array',
+\ 'debugger_off(': 'void  | int',
+\ 'debugger_on(': 'string address | int',
+\ 'debug_print_backtrace(': 'void  | void',
+\ 'debug_zval_dump(': 'mixed variable | void',
+\ 'decbin(': 'int number | string',
+\ 'dechex(': 'int number | string',
+\ 'decoct(': 'int number | string',
+\ 'defined(': 'string name | bool',
+\ 'define(': 'string name, mixed value [, bool case_insensitive] | bool',
+\ 'define_syslog_variables(': 'void  | void',
+\ 'deg2rad(': 'float number | float',
+\ 'delete(': 'string file | void',
+\ 'dgettext(': 'string domain, string message | string',
+\ 'dio_close(': 'resource fd | void',
+\ 'dio_fcntl(': 'resource fd, int cmd [, mixed args] | mixed',
+\ 'dio_open(': 'string filename, int flags [, int mode] | resource',
+\ 'dio_read(': 'resource fd [, int len] | string',
+\ 'dio_seek(': 'resource fd, int pos [, int whence] | int',
+\ 'dio_stat(': 'resource fd | array',
+\ 'dio_tcsetattr(': 'resource fd, array options | bool',
+\ 'dio_truncate(': 'resource fd, int offset | bool',
+\ 'dio_write(': 'resource fd, string data [, int len] | int',
+\ 'dirname(': 'string path | string',
+\ 'disk_free_space(': 'string directory | float',
+\ 'disk_total_space(': 'string directory | float',
+\ 'dl(': 'string library | int',
+\ 'dngettext(': 'string domain, string msgid1, string msgid2, int n | string',
+\ 'dns_check_record(': 'string host [, string type] | bool',
+\ 'dns_get_mx(': 'string hostname, array &#38;mxhosts [, array &#38;weight] | bool',
+\ 'dns_get_record(': 'string hostname [, int type [, array &#38;authns, array &#38;addtl]] | array',
+\ 'DomDocument-&#62;add_root(': 'string name | domelement',
+\ 'DomDocument-&#62;create_attribute(': 'string name, string value | domattribute',
+\ 'DomDocument-&#62;create_cdata_section(': 'string content | domcdata',
+\ 'DomDocument-&#62;create_comment(': 'string content | domcomment',
+\ 'DomDocument-&#62;create_element(': 'string name | domelement',
+\ 'DomDocument-&#62;create_element_ns(': 'string uri, string name [, string prefix] | domelement',
+\ 'DomDocument-&#62;create_entity_reference(': 'string content | domentityreference',
+\ 'DomDocument-&#62;create_processing_instruction(': 'string content | domprocessinginstruction',
+\ 'DomDocument-&#62;create_text_node(': 'string content | domtext',
+\ 'DomDocument-&#62;doctype(': 'void  | domdocumenttype',
+\ 'DomDocument-&#62;document_element(': 'void  | domelement',
+\ 'DomDocument-&#62;dump_file(': 'string filename [, bool compressionmode [, bool format]] | string',
+\ 'DomDocument-&#62;dump_mem(': '[bool format [, string encoding]] | string',
+\ 'DomDocument-&#62;get_element_by_id(': 'string id | domelement',
+\ 'DomDocument-&#62;get_elements_by_tagname(': 'string name | array',
+\ 'DomDocument-&#62;html_dump_mem(': 'void  | string',
+\ 'DomDocument-&#62;xinclude(': 'void  | int',
+\ 'dom_import_simplexml(': 'SimpleXMLElement node | DOMElement',
+\ 'DomNode-&#62;append_sibling(': 'domelement newnode | domelement',
+\ 'DomNode-&#62;attributes(': 'void  | array',
+\ 'DomNode-&#62;child_nodes(': 'void  | array',
+\ 'DomNode-&#62;clone_node(': 'void  | domelement',
+\ 'DomNode-&#62;dump_node(': 'void  | string',
+\ 'DomNode-&#62;first_child(': 'void  | domelement',
+\ 'DomNode-&#62;get_content(': 'void  | string',
+\ 'DomNode-&#62;has_attributes(': 'void  | bool',
+\ 'DomNode-&#62;has_child_nodes(': 'void  | bool',
+\ 'DomNode-&#62;insert_before(': 'domelement newnode, domelement refnode | domelement',
+\ 'DomNode-&#62;is_blank_node(': 'void  | bool',
+\ 'DomNode-&#62;last_child(': 'void  | domelement',
+\ 'DomNode-&#62;next_sibling(': 'void  | domelement',
+\ 'DomNode-&#62;node_name(': 'void  | string',
+\ 'DomNode-&#62;node_type(': 'void  | int',
+\ 'DomNode-&#62;node_value(': 'void  | string',
+\ 'DomNode-&#62;owner_document(': 'void  | domdocument',
+\ 'DomNode-&#62;parent_node(': 'void  | domnode',
+\ 'DomNode-&#62;prefix(': 'void  | string',
+\ 'DomNode-&#62;previous_sibling(': 'void  | domelement',
+\ 'DomNode-&#62;remove_child(': 'domtext oldchild | domtext',
+\ 'DomNode-&#62;replace_child(': 'domelement oldnode, domelement newnode | domelement',
+\ 'DomNode-&#62;replace_node(': 'domelement newnode | domelement',
+\ 'DomNode-&#62;set_content(': 'string content | bool',
+\ 'DomNode-&#62;set_name(': 'void  | bool',
+\ 'DomNode-&#62;set_namespace(': 'string uri [, string prefix] | void',
+\ 'DomNode-&#62;unlink_node(': 'void  | void',
+\ 'domxml_new_doc(': 'string version | DomDocument',
+\ 'domxml_open_file(': 'string filename [, int mode [, array &#38;error]] | DomDocument',
+\ 'domxml_open_mem(': 'string str [, int mode [, array &#38;error]] | DomDocument',
+\ 'domxml_version(': 'void  | string',
+\ 'domxml_xmltree(': 'string str | DomDocument',
+\ 'domxml_xslt_stylesheet_doc(': 'DomDocument xsl_doc | DomXsltStylesheet',
+\ 'domxml_xslt_stylesheet_file(': 'string xsl_file | DomXsltStylesheet',
+\ 'domxml_xslt_stylesheet(': 'string xsl_buf | DomXsltStylesheet',
+\ 'domxml_xslt_version(': 'void  | int',
+\ 'dotnet_load(': 'string assembly_name [, string datatype_name [, int codepage]] | int',
+\ 'each(': 'array &#38;array | array',
+\ 'easter_date(': '[int year] | int',
+\ 'easter_days(': '[int year [, int method]] | int',
+\ 'ebcdic2ascii(': 'string ebcdic_str | int',
+\ 'echo(': 'string arg1 [, string ...] | void',
+\ 'empty(': 'mixed var | bool',
+\ 'end(': 'array &#38;array | mixed',
+\ 'ereg(': 'string pattern, string string [, array &#38;regs] | int',
+\ 'eregi(': 'string pattern, string string [, array &#38;regs] | int',
+\ 'eregi_replace(': 'string pattern, string replacement, string string | string',
+\ 'ereg_replace(': 'string pattern, string replacement, string string | string',
+\ 'error_log(': 'string message [, int message_type [, string destination [, string extra_headers]]] | bool',
+\ 'error_reporting(': '[int level] | int',
+\ 'escapeshellarg(': 'string arg | string',
+\ 'escapeshellcmd(': 'string command | string',
+\ 'eval(': 'string code_str | mixed',
+\ 'exec(': 'string command [, array &#38;output [, int &#38;return_var]] | string',
+\ 'exif_imagetype(': 'string filename | int',
+\ 'exif_read_data(': 'string filename [, string sections [, bool arrays [, bool thumbnail]]] | array',
+\ 'exif_tagname(': 'string index | string',
+\ 'exif_thumbnail(': 'string filename [, int &#38;width [, int &#38;height [, int &#38;imagetype]]] | string',
+\ 'exit(': '[string status] | void',
+\ 'expect_expectl(': 'resource expect, array cases, string &#38;match | mixed',
+\ 'expect_popen(': 'string command | resource',
+\ 'exp(': 'float arg | float',
+\ 'explode(': 'string separator, string string [, int limit] | array',
+\ 'expm1(': 'float number | float',
+\ 'extension_loaded(': 'string name | bool',
+\ 'extract(': 'array var_array [, int extract_type [, string prefix]] | int',
+\ 'ezmlm_hash(': 'string addr | int',
+\ 'fam_cancel_monitor(': 'resource fam, resource fam_monitor | bool',
+\ 'fam_close(': 'resource fam | void',
+\ 'fam_monitor_collection(': 'resource fam, string dirname, int depth, string mask | resource',
+\ 'fam_monitor_directory(': 'resource fam, string dirname | resource',
+\ 'fam_monitor_file(': 'resource fam, string filename | resource',
+\ 'fam_next_event(': 'resource fam | array',
+\ 'fam_open(': '[string appname] | resource',
+\ 'fam_pending(': 'resource fam | int',
+\ 'fam_resume_monitor(': 'resource fam, resource fam_monitor | bool',
+\ 'fam_suspend_monitor(': 'resource fam, resource fam_monitor | bool',
+\ 'fbsql_affected_rows(': '[resource link_identifier] | int',
+\ 'fbsql_autocommit(': 'resource link_identifier [, bool OnOff] | bool',
+\ 'fbsql_blob_size(': 'string blob_handle [, resource link_identifier] | int',
+\ 'fbsql_change_user(': 'string user, string password [, string database [, resource link_identifier]] | resource',
+\ 'fbsql_clob_size(': 'string clob_handle [, resource link_identifier] | int',
+\ 'fbsql_close(': '[resource link_identifier] | bool',
+\ 'fbsql_commit(': '[resource link_identifier] | bool',
+\ 'fbsql_connect(': '[string hostname [, string username [, string password]]] | resource',
+\ 'fbsql_create_blob(': 'string blob_data [, resource link_identifier] | string',
+\ 'fbsql_create_clob(': 'string clob_data [, resource link_identifier] | string',
+\ 'fbsql_create_db(': 'string database_name [, resource link_identifier [, string database_options]] | bool',
+\ 'fbsql_database(': 'resource link_identifier [, string database] | string',
+\ 'fbsql_database_password(': 'resource link_identifier [, string database_password] | string',
+\ 'fbsql_data_seek(': 'resource result_identifier, int row_number | bool',
+\ 'fbsql_db_query(': 'string database, string query [, resource link_identifier] | resource',
+\ 'fbsql_db_status(': 'string database_name [, resource link_identifier] | int',
+\ 'fbsql_drop_db(': 'string database_name [, resource link_identifier] | bool',
+\ 'fbsql_errno(': '[resource link_identifier] | int',
+\ 'fbsql_error(': '[resource link_identifier] | string',
+\ 'fbsql_fetch_array(': 'resource result [, int result_type] | array',
+\ 'fbsql_fetch_assoc(': 'resource result | array',
+\ 'fbsql_fetch_field(': 'resource result [, int field_offset] | object',
+\ 'fbsql_fetch_lengths(': 'resource result | array',
+\ 'fbsql_fetch_object(': 'resource result [, int result_type] | object',
+\ 'fbsql_fetch_row(': 'resource result | array',
+\ 'fbsql_field_flags(': 'resource result [, int field_offset] | string',
+\ 'fbsql_field_len(': 'resource result [, int field_offset] | int',
+\ 'fbsql_field_name(': 'resource result [, int field_index] | string',
+\ 'fbsql_field_seek(': 'resource result [, int field_offset] | bool',
+\ 'fbsql_field_table(': 'resource result [, int field_offset] | string',
+\ 'fbsql_field_type(': 'resource result [, int field_offset] | string',
+\ 'fbsql_free_result(': 'resource result | bool',
+\ 'fbsql_get_autostart_info(': '[resource link_identifier] | array',
+\ 'fbsql_hostname(': 'resource link_identifier [, string host_name] | string',
+\ 'fbsql_insert_id(': '[resource link_identifier] | int',
+\ 'fbsql_list_dbs(': '[resource link_identifier] | resource',
+\ 'fbsql_list_fields(': 'string database_name, string table_name [, resource link_identifier] | resource',
+\ 'fbsql_list_tables(': 'string database [, resource link_identifier] | resource',
+\ 'fbsql_next_result(': 'resource result_id | bool',
+\ 'fbsql_num_fields(': 'resource result | int',
+\ 'fbsql_num_rows(': 'resource result | int',
+\ 'fbsql_password(': 'resource link_identifier [, string password] | string',
+\ 'fbsql_pconnect(': '[string hostname [, string username [, string password]]] | resource',
+\ 'fbsql_query(': 'string query [, resource link_identifier [, int batch_size]] | resource',
+\ 'fbsql_read_blob(': 'string blob_handle [, resource link_identifier] | string',
+\ 'fbsql_read_clob(': 'string clob_handle [, resource link_identifier] | string',
+\ 'fbsql_result(': 'resource result [, int row [, mixed field]] | mixed',
+\ 'fbsql_rollback(': '[resource link_identifier] | bool',
+\ 'fbsql_select_db(': '[string database_name [, resource link_identifier]] | bool',
+\ 'fbsql_set_lob_mode(': 'resource result, string database_name | bool',
+\ 'fbsql_set_password(': 'resource link_identifier, string user, string password, string old_password | bool',
+\ 'fbsql_set_transaction(': 'resource link_identifier, int Locking, int Isolation | void',
+\ 'fbsql_start_db(': 'string database_name [, resource link_identifier [, string database_options]] | bool',
+\ 'fbsql_stop_db(': 'string database_name [, resource link_identifier] | bool',
+\ 'fbsql_tablename(': 'resource result, int i | string',
+\ 'fbsql_username(': 'resource link_identifier [, string username] | string',
+\ 'fbsql_warnings(': '[bool OnOff] | bool',
+\ 'fclose(': 'resource handle | bool',
+\ 'fdf_add_doc_javascript(': 'resource fdfdoc, string script_name, string script_code | bool',
+\ 'fdf_add_template(': 'resource fdfdoc, int newpage, string filename, string template, int rename | bool',
+\ 'fdf_close(': 'resource fdf_document | void',
+\ 'fdf_create(': 'void  | resource',
+\ 'fdf_enum_values(': 'resource fdfdoc, callback function [, mixed userdata] | bool',
+\ 'fdf_errno(': 'void  | int',
+\ 'fdf_error(': '[int error_code] | string',
+\ 'fdf_get_ap(': 'resource fdf_document, string field, int face, string filename | bool',
+\ 'fdf_get_attachment(': 'resource fdf_document, string fieldname, string savepath | array',
+\ 'fdf_get_encoding(': 'resource fdf_document | string',
+\ 'fdf_get_file(': 'resource fdf_document | string',
+\ 'fdf_get_flags(': 'resource fdfdoc, string fieldname, int whichflags | int',
+\ 'fdf_get_opt(': 'resource fdfdof, string fieldname [, int element] | mixed',
+\ 'fdf_get_status(': 'resource fdf_document | string',
+\ 'fdf_get_value(': 'resource fdf_document, string fieldname [, int which] | mixed',
+\ 'fdf_get_version(': '[resource fdf_document] | string',
+\ 'fdf_header(': 'void  | void',
+\ 'fdf_next_field_name(': 'resource fdf_document [, string fieldname] | string',
+\ 'fdf_open(': 'string filename | resource',
+\ 'fdf_open_string(': 'string fdf_data | resource',
+\ 'fdf_remove_item(': 'resource fdfdoc, string fieldname, int item | bool',
+\ 'fdf_save(': 'resource fdf_document [, string filename] | bool',
+\ 'fdf_save_string(': 'resource fdf_document | string',
+\ 'fdf_set_ap(': 'resource fdf_document, string field_name, int face, string filename, int page_number | bool',
+\ 'fdf_set_encoding(': 'resource fdf_document, string encoding | bool',
+\ 'fdf_set_file(': 'resource fdf_document, string url [, string target_frame] | bool',
+\ 'fdf_set_flags(': 'resource fdf_document, string fieldname, int whichFlags, int newFlags | bool',
+\ 'fdf_set_javascript_action(': 'resource fdf_document, string fieldname, int trigger, string script | bool',
+\ 'fdf_set_on_import_javascript(': 'resource fdfdoc, string script, bool before_data_import | bool',
+\ 'fdf_set_opt(': 'resource fdf_document, string fieldname, int element, string str1, string str2 | bool',
+\ 'fdf_set_status(': 'resource fdf_document, string status | bool',
+\ 'fdf_set_submit_form_action(': 'resource fdf_document, string fieldname, int trigger, string script, int flags | bool',
+\ 'fdf_set_target_frame(': 'resource fdf_document, string frame_name | bool',
+\ 'fdf_set_value(': 'resource fdf_document, string fieldname, mixed value [, int isName] | bool',
+\ 'fdf_set_version(': 'resource fdf_document, string version | bool',
+\ 'feof(': 'resource handle | bool',
+\ 'fflush(': 'resource handle | bool',
+\ 'fgetc(': 'resource handle | string',
+\ 'fgetcsv(': 'resource handle [, int length [, string delimiter [, string enclosure]]] | array',
+\ 'fgets(': 'resource handle [, int length] | string',
+\ 'fgetss(': 'resource handle [, int length [, string allowable_tags]] | string',
+\ 'fileatime(': 'string filename | int',
+\ 'filectime(': 'string filename | int',
+\ 'file_exists(': 'string filename | bool',
+\ 'file_get_contents(': 'string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] | string',
+\ 'filegroup(': 'string filename | int',
+\ 'file(': 'string filename [, int use_include_path [, resource context]] | array',
+\ 'fileinode(': 'string filename | int',
+\ 'filemtime(': 'string filename | int',
+\ 'fileowner(': 'string filename | int',
+\ 'fileperms(': 'string filename | int',
+\ 'filepro_fieldcount(': 'void  | int',
+\ 'filepro_fieldname(': 'int field_number | string',
+\ 'filepro_fieldtype(': 'int field_number | string',
+\ 'filepro_fieldwidth(': 'int field_number | int',
+\ 'filepro(': 'string directory | bool',
+\ 'filepro_retrieve(': 'int row_number, int field_number | string',
+\ 'filepro_rowcount(': 'void  | int',
+\ 'file_put_contents(': 'string filename, mixed data [, int flags [, resource context]] | int',
+\ 'filesize(': 'string filename | int',
+\ 'filetype(': 'string filename | string',
+\ 'floatval(': 'mixed var | float',
+\ 'flock(': 'resource handle, int operation [, int &#38;wouldblock] | bool',
+\ 'floor(': 'float value | float',
+\ 'flush(': 'void  | void',
+\ 'fmod(': 'float x, float y | float',
+\ 'fnmatch(': 'string pattern, string string [, int flags] | bool',
+\ 'fopen(': 'string filename, string mode [, bool use_include_path [, resource zcontext]] | resource',
+\ 'fpassthru(': 'resource handle | int',
+\ 'fprintf(': 'resource handle, string format [, mixed args [, mixed ...]] | int',
+\ 'fputcsv(': 'resource handle [, array fields [, string delimiter [, string enclosure]]] | int',
+\ 'fread(': 'resource handle, int length | string',
+\ 'frenchtojd(': 'int month, int day, int year | int',
+\ 'fribidi_log2vis(': 'string str, string direction, int charset | string',
+\ 'fscanf(': 'resource handle, string format [, mixed &#38;...] | mixed',
+\ 'fseek(': 'resource handle, int offset [, int whence] | int',
+\ 'fsockopen(': 'string target [, int port [, int &#38;errno [, string &#38;errstr [, float timeout]]]] | resource',
+\ 'fstat(': 'resource handle | array',
+\ 'ftell(': 'resource handle | int',
+\ 'ftok(': 'string pathname, string proj | int',
+\ 'ftp_alloc(': 'resource ftp_stream, int filesize [, string &#38;result] | bool',
+\ 'ftp_cdup(': 'resource ftp_stream | bool',
+\ 'ftp_chdir(': 'resource ftp_stream, string directory | bool',
+\ 'ftp_chmod(': 'resource ftp_stream, int mode, string filename | int',
+\ 'ftp_close(': 'resource ftp_stream | bool',
+\ 'ftp_connect(': 'string host [, int port [, int timeout]] | resource',
+\ 'ftp_delete(': 'resource ftp_stream, string path | bool',
+\ 'ftp_exec(': 'resource ftp_stream, string command | bool',
+\ 'ftp_fget(': 'resource ftp_stream, resource handle, string remote_file, int mode [, int resumepos] | bool',
+\ 'ftp_fput(': 'resource ftp_stream, string remote_file, resource handle, int mode [, int startpos] | bool',
+\ 'ftp_get(': 'resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos] | bool',
+\ 'ftp_get_option(': 'resource ftp_stream, int option | mixed',
+\ 'ftp_login(': 'resource ftp_stream, string username, string password | bool',
+\ 'ftp_mdtm(': 'resource ftp_stream, string remote_file | int',
+\ 'ftp_mkdir(': 'resource ftp_stream, string directory | string',
+\ 'ftp_nb_continue(': 'resource ftp_stream | int',
+\ 'ftp_nb_fget(': 'resource ftp_stream, resource handle, string remote_file, int mode [, int resumepos] | int',
+\ 'ftp_nb_fput(': 'resource ftp_stream, string remote_file, resource handle, int mode [, int startpos] | int',
+\ 'ftp_nb_get(': 'resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos] | int',
+\ 'ftp_nb_put(': 'resource ftp_stream, string remote_file, string local_file, int mode [, int startpos] | int',
+\ 'ftp_nlist(': 'resource ftp_stream, string directory | array',
+\ 'ftp_pasv(': 'resource ftp_stream, bool pasv | bool',
+\ 'ftp_put(': 'resource ftp_stream, string remote_file, string local_file, int mode [, int startpos] | bool',
+\ 'ftp_pwd(': 'resource ftp_stream | string',
+\ 'ftp_raw(': 'resource ftp_stream, string command | array',
+\ 'ftp_rawlist(': 'resource ftp_stream, string directory [, bool recursive] | array',
+\ 'ftp_rename(': 'resource ftp_stream, string oldname, string newname | bool',
+\ 'ftp_rmdir(': 'resource ftp_stream, string directory | bool',
+\ 'ftp_set_option(': 'resource ftp_stream, int option, mixed value | bool',
+\ 'ftp_site(': 'resource ftp_stream, string command | bool',
+\ 'ftp_size(': 'resource ftp_stream, string remote_file | int',
+\ 'ftp_ssl_connect(': 'string host [, int port [, int timeout]] | resource',
+\ 'ftp_systype(': 'resource ftp_stream | string',
+\ 'ftruncate(': 'resource handle, int size | bool',
+\ 'func_get_arg(': 'int arg_num | mixed',
+\ 'func_get_args(': 'void  | array',
+\ 'func_num_args(': 'void  | int',
+\ 'function_exists(': 'string function_name | bool',
+\ 'fwrite(': 'resource handle, string string [, int length] | int',
+\ 'gd_info(': 'void  | array',
+\ 'getallheaders(': 'void  | array',
+\ 'get_browser(': '[string user_agent [, bool return_array]] | mixed',
+\ 'get_cfg_var(': 'string varname | string',
+\ 'get_class(': '[object obj] | string',
+\ 'get_class_methods(': 'mixed class_name | array',
+\ 'get_class_vars(': 'string class_name | array',
+\ 'get_current_user(': 'void  | string',
+\ 'getcwd(': 'void  | string',
+\ 'getdate(': '[int timestamp] | array',
+\ 'get_declared_classes(': 'void  | array',
+\ 'get_declared_interfaces(': 'void  | array',
+\ 'get_defined_constants(': '[mixed categorize] | array',
+\ 'get_defined_functions(': 'void  | array',
+\ 'get_defined_vars(': 'void  | array',
+\ 'getenv(': 'string varname | string',
+\ 'get_extension_funcs(': 'string module_name | array',
+\ 'get_headers(': 'string url [, int format] | array',
+\ 'gethostbyaddr(': 'string ip_address | string',
+\ 'gethostbyname(': 'string hostname | string',
+\ 'gethostbynamel(': 'string hostname | array',
+\ 'get_html_translation_table(': '[int table [, int quote_style]] | array',
+\ 'getimagesize(': 'string filename [, array &#38;imageinfo] | array',
+\ 'get_included_files(': 'void  | array',
+\ 'get_include_path(': 'void  | string',
+\ 'getlastmod(': 'void  | int',
+\ 'get_loaded_extensions(': 'void  | array',
+\ 'get_magic_quotes_gpc(': 'void  | int',
+\ 'get_magic_quotes_runtime(': 'void  | int',
+\ 'get_meta_tags(': 'string filename [, bool use_include_path] | array',
+\ 'getmxrr(': 'string hostname, array &#38;mxhosts [, array &#38;weight] | bool',
+\ 'getmygid(': 'void  | int',
+\ 'getmyinode(': 'void  | int',
+\ 'getmypid(': 'void  | int',
+\ 'getmyuid(': 'void  | int',
+\ 'get_object_vars(': 'object obj | array',
+\ 'getopt(': 'string options | array',
+\ 'get_parent_class(': '[mixed obj] | string',
+\ 'getprotobyname(': 'string name | int',
+\ 'getprotobynumber(': 'int number | string',
+\ 'getrandmax(': 'void  | int',
+\ 'get_resource_type(': 'resource handle | string',
+\ 'getrusage(': '[int who] | array',
+\ 'getservbyname(': 'string service, string protocol | int',
+\ 'getservbyport(': 'int port, string protocol | string',
+\ 'gettext(': 'string message | string',
+\ 'gettimeofday(': '[bool return_float] | mixed',
+\ 'gettype(': 'mixed var | string',
+\ 'glob(': 'string pattern [, int flags] | array',
+\ 'gmdate(': 'string format [, int timestamp] | string',
+\ 'gmmktime(': '[int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] | int',
+\ 'gmp_abs(': 'resource a | resource',
+\ 'gmp_add(': 'resource a, resource b | resource',
+\ 'gmp_and(': 'resource a, resource b | resource',
+\ 'gmp_clrbit(': 'resource &#38;a, int index | void',
+\ 'gmp_cmp(': 'resource a, resource b | int',
+\ 'gmp_com(': 'resource a | resource',
+\ 'gmp_divexact(': 'resource n, resource d | resource',
+\ 'gmp_div_q(': 'resource a, resource b [, int round] | resource',
+\ 'gmp_div_qr(': 'resource n, resource d [, int round] | array',
+\ 'gmp_div_r(': 'resource n, resource d [, int round] | resource',
+\ 'gmp_fact(': 'int a | resource',
+\ 'gmp_gcdext(': 'resource a, resource b | array',
+\ 'gmp_gcd(': 'resource a, resource b | resource',
+\ 'gmp_hamdist(': 'resource a, resource b | int',
+\ 'gmp_init(': 'mixed number [, int base] | resource',
+\ 'gmp_intval(': 'resource gmpnumber | int',
+\ 'gmp_invert(': 'resource a, resource b | resource',
+\ 'gmp_jacobi(': 'resource a, resource p | int',
+\ 'gmp_legendre(': 'resource a, resource p | int',
+\ 'gmp_mod(': 'resource n, resource d | resource',
+\ 'gmp_mul(': 'resource a, resource b | resource',
+\ 'gmp_neg(': 'resource a | resource',
+\ 'gmp_or(': 'resource a, resource b | resource',
+\ 'gmp_perfect_square(': 'resource a | bool',
+\ 'gmp_popcount(': 'resource a | int',
+\ 'gmp_pow(': 'resource base, int exp | resource',
+\ 'gmp_powm(': 'resource base, resource exp, resource mod | resource',
+\ 'gmp_prob_prime(': 'resource a [, int reps] | int',
+\ 'gmp_random(': 'int limiter | resource',
+\ 'gmp_scan0(': 'resource a, int start | int',
+\ 'gmp_scan1(': 'resource a, int start | int',
+\ 'gmp_setbit(': 'resource &#38;a, int index [, bool set_clear] | void',
+\ 'gmp_sign(': 'resource a | int',
+\ 'gmp_sqrt(': 'resource a | resource',
+\ 'gmp_sqrtrem(': 'resource a | array',
+\ 'gmp_strval(': 'resource gmpnumber [, int base] | string',
+\ 'gmp_sub(': 'resource a, resource b | resource',
+\ 'gmp_xor(': 'resource a, resource b | resource',
+\ 'gmstrftime(': 'string format [, int timestamp] | string',
+\ 'gnupg_adddecryptkey(': 'resource identifier, string fingerprint, string passphrase | bool',
+\ 'gnupg_addencryptkey(': 'resource identifier, string fingerprint | bool',
+\ 'gnupg_addsignkey(': 'resource identifier, string fingerprint [, string passphrase] | bool',
+\ 'gnupg_cleardecryptkeys(': 'resource identifier | bool',
+\ 'gnupg_clearencryptkeys(': 'resource identifier | bool',
+\ 'gnupg_clearsignkeys(': 'resource identifier | bool',
+\ 'gnupg_decrypt(': 'resource identifier, string text | string',
+\ 'gnupg_decryptverify(': 'resource identifier, string text, string plaintext | array',
+\ 'gnupg_encrypt(': 'resource identifier, string plaintext | string',
+\ 'gnupg_encryptsign(': 'resource identifier, string plaintext | string',
+\ 'gnupg_export(': 'resource identifier, string fingerprint | string',
+\ 'gnupg_geterror(': 'resource identifier | string',
+\ 'gnupg_getprotocol(': 'resource identifier | int',
+\ 'gnupg_import(': 'resource identifier, string keydata | array',
+\ 'gnupg_keyinfo(': 'resource identifier, string pattern | array',
+\ 'gnupg_setarmor(': 'resource identifier, int armor | bool',
+\ 'gnupg_seterrormode(': 'resource identifier, int errormode | void',
+\ 'gnupg_setsignmode(': 'resource identifier, int signmode | bool',
+\ 'gnupg_sign(': 'resource identifier, string plaintext | string',
+\ 'gnupg_verify(': 'resource identifier, string signed_text, string signature [, string plaintext] | array',
+\ 'gopher_parsedir(': 'string dirent | array',
+\ 'gregoriantojd(': 'int month, int day, int year | int',
+\ 'gzclose(': 'resource zp | bool',
+\ 'gzcompress(': 'string data [, int level] | string',
+\ 'gzdeflate(': 'string data [, int level] | string',
+\ 'gzencode(': 'string data [, int level [, int encoding_mode]] | string',
+\ 'gzeof(': 'resource zp | int',
+\ 'gzfile(': 'string filename [, int use_include_path] | array',
+\ 'gzgetc(': 'resource zp | string',
+\ 'gzgets(': 'resource zp, int length | string',
+\ 'gzgetss(': 'resource zp, int length [, string allowable_tags] | string',
+\ 'gzinflate(': 'string data [, int length] | string',
+\ 'gzopen(': 'string filename, string mode [, int use_include_path] | resource',
+\ 'gzpassthru(': 'resource zp | int',
+\ 'gzread(': 'resource zp, int length | string',
+\ 'gzrewind(': 'resource zp | bool',
+\ 'gzseek(': 'resource zp, int offset | int',
+\ 'gztell(': 'resource zp | int',
+\ 'gzuncompress(': 'string data [, int length] | string',
+\ 'gzwrite(': 'resource zp, string string [, int length] | int',
+\ '__halt_compiler(': 'void  | void',
+\ 'hash_algos(': 'void  | array',
+\ 'hash_file(': 'string algo, string filename [, bool raw_output] | string',
+\ 'hash_final(': 'resource context [, bool raw_output] | string',
+\ 'hash_hmac_file(': 'string algo, string filename, string key [, bool raw_output] | string',
+\ 'hash_hmac(': 'string algo, string data, string key [, bool raw_output] | string',
+\ 'hash(': 'string algo, string data [, bool raw_output] | string',
+\ 'hash_init(': 'string algo [, int options, string key] | resource',
+\ 'hash_update_file(': 'resource context, string filename [, resource context] | bool',
+\ 'hash_update(': 'resource context, string data | bool',
+\ 'hash_update_stream(': 'resource context, resource handle [, int length] | int',
+\ 'header(': 'string string [, bool replace [, int http_response_code]] | void',