Creates a new GeSHi object, with source and language
	
	
	
		GeSHi
		
			GeSHi
		
					([string $source = ''], [string $language = ''], [string $path = ''])
			
	
			
					- 
				string
				$source: The source code to highlight			
- 
				string
				$language: The language to highlight the source with			
- 
				string
				$path: The path to the language file directory. This
               is deprecated! I've backported the auto path                detection from the 1.1.X dev branch, so now it                should be automatically set correctly. If you have                renamed the language directory however, you will                still need to set the path using this parameter or                GeSHi->set_language_path()			
 
	
	 
	
	
Adds a keyword to a keyword group for highlighting
	
	
	
		void
		
			add_keyword
		
					(int $key, string $word)
			
	
			
					- 
				int
				$key: The key of the keyword group to add the keyword to			
- 
				string
				$word: The word to add to the keyword group			
 
	
	 
	
	
Creates a new keyword group
	
	
	
		void
		
			add_keyword_group
		
					(int $key, string $styles, [boolean $case_sensitive = true], [array $words = array()])
			
	
			
					- 
				int
				$key: The key of the keyword group to create			
- 
				string
				$styles: The styles for the keyword group			
- 
				boolean
				$case_sensitive: Whether the keyword group is case sensitive ornot			
- 
				array
				$words: The words to use for the keyword group			
 
	
	 
	
	
Disables all highlighting
	
	
	
		void
		
			disable_highlighting
		
				()
			
	
		
			
	 
	
	 
	
	
Sets whether CSS classes should be used to highlight the source. Default  is off, calling this method with no arguments will turn it on
	
	
	
		void
		
			enable_classes
		
					([boolean $flag = true])
			
	
			
					- 
				boolean
				$flag: Whether to turn classes on or not			
 
	
	 
	
	
Enables all highlighting
The optional flag parameter was added in version 1.0.7.21 and can be used  to enable (true) or disable (false) all highlighting.
	
	
	
		void
		
			enable_highlighting
		
					([boolean $flag = true])
			
	
			
					- 
				boolean
				$flag: A flag specifying whether to enable or disable all highlighting			
 
	
	 
	
	
Whether CSS IDs should be added to each line
	
	
	
		void
		
			enable_ids
		
					([boolean $flag = true])
			
	
			
					- 
				boolean
				$flag: If true, IDs will be added to each line.			
 
	
	 
	
	
Sets whether context-important blocks are highlighted
	
	
	
		void
		
			enable_important_blocks
		
					(boolean $flag)
			
	
			
					- 
				boolean
				$flag: Tells whether to enable or disable highlighting of important blocks			
 
	
	 
	
	
Sets whether to force a surrounding block around  the highlighted code or not
	
	
	
		void
		
			enable_inner_code_block
		
					(boolean $flag)
			
	
			
					- 
				boolean
				$flag: Tells whether to enable or disable this feature			
 
	
	 
	
	
Turns linking of keywords on or off.
	
	
	
		void
		
			enable_keyword_links
		
					([boolean $enable = true])
			
	
			
					- 
				boolean
				$enable: If true, links will be added to keywords			
 
	
	 
	
	
Sets whether line numbers should be displayed.
Valid values for the first parameter are:
- GESHI_NO_LINE_NUMBERS: Line numbers will not be displayed
- GESHI_NORMAL_LINE_NUMBERS: Line numbers will be displayed
- GESHI_FANCY_LINE_NUMBERS: Fancy line numbers will be displayed
  For fancy line numbers, the second parameter is used to signal which lines  are to be fancy. For example, if the value of this parameter is 5 then every  5th line will be fancy.
	
	
	
		void
		
			enable_line_numbers
		
					(int $flag, [int $nth_row = 5])
			
	
			
					- 
				int
				$flag: How line numbers should be displayed			
- 
				int
				$nth_row: Defines which lines are fancy			
 
	
	 
	
	
Sets wether spans and other HTML markup generated by GeSHi can  span over multiple lines or not. Defaults to true to reduce overhead.
Set it to false if you want to manipulate the output or manually display  the code in an ordered list.
	
	
	
		void
		
			enable_multiline_span
		
					(boolean $flag)
			
	
			
					- 
				boolean
				$flag: Wether multiline spans are allowed or not			
 
	
	 
	
	
Enables/disables strict highlighting. Default is off, calling this  method without parameters will turn it on. See documentation  for more details on strict mode and where to use it.
	
	
	
		void
		
			enable_strict_mode
		
					([boolean $mode = true])
			
	
			
					- 
				boolean
				$mode: Whether to enable strict mode or not			
 
	
	 
	
	
Returns an error message associated with the last GeSHi operation,  or false if no error has occured
	
	
	
		string|false
		
			error
		
				()
			
	
		
			
	 
	
	 
	
	
Gets a human-readable language name (thanks to Simon Patterson  for the idea :))
	
	
	
		string
		
			get_language_name
		
				()
			
	
		
			
	 
	
	 
	
	
Given a file extension, this method returns either a valid geshi language  name, or the empty string if it couldn't be found
	
	
	
		void
		
			get_language_name_from_extension
		
					(string $extension, [array $lookup = array()])
			
	
			
					- 
				string
				$extension: The extension to get a language name for			
- 
				array
				$lookup: A lookup array to use instead of the default one			
 
	
	 
	
	
Get current setting for multiline spans, see GeSHi->enable_multiline_span().
	
	
	
		bool
		
			get_multiline_span
		
				()
			
	
		
			
	 
	
	 
	
	
Returns the tab width to use, based on the current language and user  preference
	
	
	
		int
		
			get_real_tab_width
		
				()
			
	
		
			
	 
	
	 
	
	
Returns a stylesheet for the highlighted code. If $economy mode  is true, we only return the stylesheet declarations that matter for  this code block instead of the whole thing
	
	
	
		string
		
			get_stylesheet
		
					([boolean $economy_mode = true])
			
	
			
					- 
				boolean
				$economy_mode: Whether to use economy mode or not			
 
	
	 
	
	
Gets the time taken to parse the code
	
	
	
		double
		
			get_time
		
				()
			
	
		
			
	 
	
	 
	
	
Specifies which lines to highlight extra
The extra style parameter was added in 1.0.7.21.
	
	
	
		void
		
			highlight_lines_extra
		
					(mixed $lines, [string $style = null])
			
	
			
					- 
				mixed
				$lines: An array of line numbers to highlight, or just a line               number on its own.			
- 
				string
				$style: A string specifying the style to use for this line.               If null is specified, the default style is used.               If false is specified, the line will be removed from               special highlighting			
 
	
	 
	
	
Given a file name, this method loads its contents in, and attempts
to set the language automatically. An optional lookup table can be  passed for looking up the language name. If not specified a default  table is used
The language table is in the form  
array(
   'lang_name' => array('extension', 'extension', ...),
   'lang_name' ...
 );
	
	
	
		void
		
			load_from_file
		
					(string $file_name, [array $lookup = array()])
			
	
			
					- 
				string
				$file_name: The filename to load the source from			
- 
				array
				$lookup: A lookup array to use instead of the default one			
 
	
	 
	
	
compile optimized regexp list for keyword group
	
	
	
		void
		
			optimize_keyword_group
		
					(int $key)
			
	
			
					- 
				int
				$key: The key of the keyword group to compile & optimize			
 
	
	 
	
	
Returns the code in $this->source, highlighted and surrounded by the  nessecary HTML.
This should only be called ONCE, cos it's SLOW! If you want to highlight  the same source multiple times, you're better off doing a whole lot of  str_replaces to replace the <span>s
	
	
	
		void
		
			parse_code
		
				()
			
	
		
			
	 
	
	 
	
	
Removes a keyword from a keyword group
	
	
	
		void
		
			remove_keyword
		
					(int $key, string $word, [bool $recompile = true])
			
	
			
					- 
				int
				$key: The key of the keyword group to remove the keyword from			
- 
				string
				$word: The word to remove from the keyword group			
- 
				bool
				$recompile: Wether to automatically recompile the optimized regexp list or not.                Note: if you set this to false and @see GeSHi->parse_code() was already called once,                for the current language, you have to manually call @see GeSHi->optimize_keyword_group()                or the removed keyword will stay in cache and still be highlighted! On the other hand                it might be too expensive to recompile the regexp list for every removal if you want to                remove a lot of keywords.			
 
	
	 
	
	
Removes a keyword group
	
	
	
		void
		
			remove_keyword_group
		
					(int $key)
			
	
			
					- 
				int
				$key: The key of the keyword group to remove			
 
	
	 
	
	
Turns highlighting on/off for brackets
This method is DEPRECATED: use set_symbols_highlighting instead.  This method will be remove in 1.2.X
	
	
	
		void
		
			set_brackets_highlighting
		
					(boolean $flag)
			
	
			
					- 
				boolean
				$flag: Whether to turn highlighting for brackets on or off			
 
	
	 
	
	
Sets the styles for brackets. If $preserve_defaults is  true, then styles are merged with the default styles, with the  user defined styles having priority
This method is DEPRECATED: use set_symbols_style instead.  This method will be removed in 1.2.X
	
	
	
		void
		
			set_brackets_style
		
					(string $style, [boolean $preserve_defaults = false])
			
	
			
					- 
				string
				$style: The style to make the brackets			
- 
				boolean
				$preserve_defaults: Whether to merge the new styles with the old or just                 to overwrite them			
 
	
	 
	
	
Sets the case that keywords should use when found. Use the constants:
- GESHI_CAPS_NO_CHANGE: leave keywords as-is
- GESHI_CAPS_UPPER: convert all keywords to uppercase where found
- GESHI_CAPS_LOWER: convert all keywords to lowercase where found
		void
		
			set_case_keywords
		
					(int $case)
			
	
			
					- 
				int
				$case: A constant specifying what to do with matched keywords			
 
	
	 
	
	
Sets whether a set of keywords are checked for in a case sensitive manner
	
	
	
		void
		
			set_case_sensitivity
		
					(int $key, boolean $case)
			
	
			
					- 
				int
				$key: The key of the keyword group to change the case sensitivity of			
- 
				boolean
				$case: Whether to check in a case sensitive manner or not			
 
	
	 
	
	
Sets the style for the actual code. This should be a string
containing valid stylesheet declarations. If $preserve_defaults is  true, then styles are merged with the default styles, with the  user defined styles having priority
Note: Use this method to override any style changes you made to  the line numbers if you are using line numbers, else the line of  code will have the same style as the line number! Consult the  GeSHi documentation for more information about this.
	
	
	
		void
		
			set_code_style
		
					(string $style, [boolean $preserve_defaults = false])
			
	
			
					- 
				string
				$style: The style to use for actual code			
- 
				boolean
				$preserve_defaults: Whether to merge the current styles with the new styles			
 
	
	 
	
	
Turns highlighting on/off for comment groups
	
	
	
		void
		
			set_comments_highlighting
		
					(int $key, [boolean $flag = true])
			
	
			
					- 
				int
				$key: The key of the comment group to turn on or off			
- 
				boolean
				$flag: Whether to turn highlighting for that group on or off			
 
	
	 
	
	
Sets the styles for comment groups.  If $preserve_defaults is  true, then styles are merged with the default styles, with the  user defined styles having priority
	
	
	
		void
		
			set_comments_style
		
					(int $key, string $style, [boolean $preserve_defaults = false])
			
	
			
					- 
				int
				$key: The key of the comment group to change the styles of			
- 
				string
				$style: The style to make the comments			
- 
				boolean
				$preserve_defaults: Whether to merge the new styles with the old or just                 to overwrite them			
 
	
	 
	
	
Sets the encoding used for htmlspecialchars(), for international  support.
NOTE: This is not needed for now because htmlspecialchars() is not  being used (it has a security hole in PHP4 that has not been patched).  Maybe in a future version it may make a return for speed reasons, but  I doubt it.
	
	
	
		void
		
			set_encoding
		
					(string $encoding)
			
	
			
					- 
				string
				$encoding: The encoding to use for the source			
 
	
	 
	
	
Turns highlighting on/off for escaped characters
	
	
	
		void
		
			set_escape_characters_highlighting
		
					([boolean $flag = true])
			
	
			
					- 
				boolean
				$flag: Whether to turn highlighting for escape characters on or off			
 
	
	 
	
	
Sets the styles for escaped characters. If $preserve_defaults is  true, then styles are merged with the default styles, with the  user defined styles having priority
	
	
	
		void
		
			set_escape_characters_style
		
					(string $style, [boolean $preserve_defaults = false])
			
	
			
					- 
				string
				$style: The style to make the escape characters			
- 
				boolean
				$preserve_defaults: Whether to merge the new styles with the old or just                 to overwrite them			
 
	
	 
	
	
Sets the content of the footer block
	
	
	
		void
		
			set_footer_content
		
					(string $content)
			
	
			
					- 
				string
				$content: The content of the footer block			
 
	
	 
	
	
Sets the style for the footer content
	
	
	
		void
		
			set_footer_content_style
		
					(string $style)
			
	
			
					- 
				string
				$style: The style for the footer content			
 
	
	 
	
	
Sets the content of the header block
	
	
	
		void
		
			set_header_content
		
					(string $content)
			
	
			
					- 
				string
				$content: The content of the header block			
 
	
	 
	
	
Sets the style for the header content
	
	
	
		void
		
			set_header_content_style
		
					(string $style)
			
	
			
					- 
				string
				$style: The style for the header content			
 
	
	 
	
	
Sets the type of header to be used.
If GESHI_HEADER_DIV is used, the code is surrounded in a "div".This  means more source code but more control over tab width and line-wrapping.  GESHI_HEADER_PRE means that a "pre" is used - less source, but less  control. Default is GESHI_HEADER_PRE.
From 1.0.7.2, you can use GESHI_HEADER_NONE to specify that no header code  should be outputted.
	
	
	
		void
		
			set_header_type
		
					(int $type)
			
	
			
					- 
				int
				$type: The type of header to be used			
 
	
	 
	
	
Sets the style for extra-highlighted lines
	
	
	
		void
		
			set_highlight_lines_extra_style
		
					(string $styles)
			
	
			
					- 
				string
				$styles: The style for extra-highlighted lines			
 
	
	 
	
	
Sets styles for important parts of the code
	
	
	
		void
		
			set_important_styles
		
					(string $styles)
			
	
			
					- 
				string
				$styles: The styles to use on important parts of the code			
 
	
	 
	
	
Turns highlighting on/off for a keyword group
	
	
	
		void
		
			set_keyword_group_highlighting
		
					(int $key, [boolean $flag = true])
			
	
			
					- 
				int
				$key: The key of the keyword group to turn on or off			
- 
				boolean
				$flag: Whether to turn highlighting for that group on or off			
 
	
	 
	
	
Sets the style for a keyword group. If $preserve_defaults is  true, then styles are merged with the default styles, with the  user defined styles having priority
	
	
	
		void
		
			set_keyword_group_style
		
					(int $key, string $style, [boolean $preserve_defaults = false])
			
	
			
					- 
				int
				$key: The key of the keyword group to change the styles of			
- 
				string
				$style: The style to make the keywords			
- 
				boolean
				$preserve_defaults: Whether to merge the new styles with the old or just                 to overwrite them			
 
	
	 
	
	
Sets the language for this object
	
	
	
		void
		
			set_language
		
					(string $language, [ $force_reset = false])
			
	
			
					- 
				string
				$language: The name of the language to use			
- 
				
				$force_reset			
 
	
	 
	
	
Sets the path to the directory containing the language files. Note  that this path is relative to the directory of the script that included  geshi.php, NOT geshi.php itself.
	
	
	
		void
		
			set_language_path
		
					(string $path)
			
	
			
					- 
				string
				$path: The path to the language directory			
 
	
	 
	
	
Sets the line-ending
	
	
	
		void
		
			set_line_ending
		
					(string $line_ending)
			
	
			
					- 
				string
				$line_ending: The new line-ending			
 
	
	 
	
	
Sets the styles for the line numbers.
	
	
	
		void
		
			set_line_style
		
					(string $style1, [string|boolean $style2 = ''], [boolean $preserve_defaults = false])
			
	
			
					- 
				string
				$style1: The style for the line numbers that are "normal"			
- 
				string|boolean
				$style2: If a string, this is the style of the line         numbers that are "fancy", otherwise if boolean then this         defines whether the normal styles should be merged with the         new normal styles or not			
- 
				boolean
				$preserve_defaults: If set, is the flag for whether to merge the "fancy"         styles with the current styles or not			
 
	
	 
	
	
Sets styles for links in code
	
	
	
		void
		
			set_link_styles
		
					(int $type, string $styles)
			
	
			
					- 
				int
				$type: A constant that specifies what state the style is being             set for - e.g. :hover or :visited			
- 
				string
				$styles: The styles to use for that state			
 
	
	 
	
	
Sets the target for links in code
	
	
	
		void
		
			set_link_target
		
					(string $target)
			
	
			
					- 
				string
				$target: The target for links in the code, e.g. _blank			
 
	
	 
	
	
Turns highlighting on/off for methods
	
	
	
		void
		
			set_methods_highlighting
		
					(boolean $flag)
			
	
			
					- 
				boolean
				$flag: Whether to turn highlighting for methods on or off			
 
	
	 
	
	
Sets the styles for methods. $key is a number that references the
appropriate "object splitter" - see the language file for the language  you are highlighting to get this number. If $preserve_defaults is  true, then styles are merged with the default styles, with the  user defined styles having priority
	
	
	
		void
		
			set_methods_style
		
					(int $key, string $style, [boolean $preserve_defaults = false])
			
	
			
					- 
				int
				$key: The key of the object splitter to change the styles of			
- 
				string
				$style: The style to make the methods			
- 
				boolean
				$preserve_defaults: Whether to merge the new styles with the old or just                 to overwrite them			
 
	
	 
	
	
Turns highlighting on/off for numbers
	
	
	
		void
		
			set_numbers_highlighting
		
					(boolean $flag)
			
	
			
					- 
				boolean
				$flag: Whether to turn highlighting for numbers on or off			
 
	
	 
	
	
Sets the styles for numbers. If $preserve_defaults is  true, then styles are merged with the default styles, with the  user defined styles having priority
	
	
	
		void
		
			set_numbers_style
		
					(string $style, [boolean $preserve_defaults = false])
			
	
			
					- 
				string
				$style: The style to make the numbers			
- 
				boolean
				$preserve_defaults: Whether to merge the new styles with the old or just                 to overwrite them			
 
	
	 
	
	
Sets the overall classname for this block of code. This  class can then be used in a stylesheet to style this object's  output
	
	
	
		void
		
			set_overall_class
		
					(string $class)
			
	
			
					- 
				string
				$class: The class name to use for this block of code			
 
	
	 
	
	
Sets the overall id for this block of code. This id can then  be used in a stylesheet to style this object's output
	
	
	
		void
		
			set_overall_id
		
					(string $id)
			
	
			
					- 
				string
				$id: The ID to use for this block of code			
 
	
	 
	
	
Sets the styles for the code that will be outputted  when this object is parsed. The style should be a  string of valid stylesheet declarations
	
	
	
		void
		
			set_overall_style
		
					(string $style, [boolean $preserve_defaults = false])
			
	
			
					- 
				string
				$style: The overall style for the outputted code block			
- 
				boolean
				$preserve_defaults: Whether to merge the styles with the current styles or not			
 
	
	 
	
	
Turns highlighting on/off for regexps
	
	
	
		void
		
			set_regexps_highlighting
		
					(int $key, boolean $flag)
			
	
			
					- 
				int
				$key: The key of the regular expression group to turn on or off			
- 
				boolean
				$flag: Whether to turn highlighting for the regular expression group on or off			
 
	
	 
	
	
Sets the styles for regexps. If $preserve_defaults is  true, then styles are merged with the default styles, with the  user defined styles having priority
	
	
	
		void
		
			set_regexps_style
		
					(string $key, boolean $style, [ $preserve_defaults = false])
			
	
			
					- 
				string
				$key: The style to make the regular expression matches			
- 
				boolean
				$style: Whether to merge the new styles with the old or just                 to overwrite them			
- 
				
				$preserve_defaults			
 
	
	 
	
	
Sets the source code for this object
	
	
	
		void
		
			set_source
		
					(string $source)
			
	
			
					- 
				string
				$source: The source code to highlight			
 
	
	 
	
	
Turns highlighting on/off for strings
	
	
	
		void
		
			set_strings_highlighting
		
					(boolean $flag)
			
	
			
					- 
				boolean
				$flag: Whether to turn highlighting for strings on or off			
 
	
	 
	
	
Sets the styles for strings. If $preserve_defaults is  true, then styles are merged with the default styles, with the  user defined styles having priority
	
	
	
		void
		
			set_strings_style
		
					(string $style, [boolean $preserve_defaults = false])
			
	
			
					- 
				string
				$style: The style to make the escape characters			
- 
				boolean
				$preserve_defaults: Whether to merge the new styles with the old or just                 to overwrite them			
 
	
	 
	
	
Turns highlighting on/off for symbols
	
	
	
		void
		
			set_symbols_highlighting
		
					(boolean $flag)
			
	
			
					- 
				boolean
				$flag: Whether to turn highlighting for symbols on or off			
 
	
	 
	
	
Sets the styles for symbols. If $preserve_defaults is  true, then styles are merged with the default styles, with the  user defined styles having priority
	
	
	
		void
		
			set_symbols_style
		
					(string $style, [boolean $preserve_defaults = false], [int $group = 0])
			
	
			
					- 
				string
				$style: The style to make the symbols			
- 
				boolean
				$preserve_defaults: Whether to merge the new styles with the old or just                 to overwrite them			
- 
				int
				$group: Tells the group of symbols for which style should be set.			
 
	
	 
	
	
Sets how many spaces a tab is substituted for
Widths below zero are ignored
	
	
	
		void
		
			set_tab_width
		
					(int $width)
			
	
			
					- 
				int
				$width: The tab width			
 
	
	 
	
	
Sets the base URL to be used for keywords
	
	
	
		void
		
			set_url_for_keyword_group
		
					(int $group, string $url)
			
	
			
					- 
				int
				$group: The key of the keyword group to set the URL for			
- 
				string
				$url: The URL to set for the group. If {FNAME} is in                the url somewhere, it is replaced by the keyword                that the URL is being made for			
 
	
	 
	
	
Sets whether or not to use tab-stop width specifed by language
	
	
	
		void
		
			set_use_language_tab_width
		
					(boolean $use)
			
	
			
					- 
				boolean
				$use: Whether to use language-specific tab-stop widths			
 
	
	 
	
	
Sets what number line numbers should start at. Should  be a positive integer, and will be converted to one.
Warning: Using this method will add the "start"  attribute to the <ol> that is used for line numbering.  This is not valid XHTML strict, so if that's what you  care about then don't use this method. Firefox is getting  support for the CSS method of doing this in 1.1 and Opera  has support for the CSS method, but (of course) IE doesn't  so it's not worth doing it the CSS way yet.
	
	
	
		void
		
			start_line_numbers_at
		
					(int $number)
			
	
			
					- 
				int
				$number: The number to start line numbers at