36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
require_once dirname(__FILE__) . '/Data.php';
 | 
						|
require_once dirname(__FILE__) . '/InputStream.php';
 | 
						|
require_once dirname(__FILE__) . '/TreeBuilder.php';
 | 
						|
require_once dirname(__FILE__) . '/Tokenizer.php';
 | 
						|
 | 
						|
/**
 | 
						|
 * Outwards facing interface for HTML5.
 | 
						|
 */
 | 
						|
class HTML5_Parser
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Parses a full HTML document.
 | 
						|
     * @param $text HTML text to parse
 | 
						|
     * @param $builder Custom builder implementation
 | 
						|
     * @return Parsed HTML as DOMDocument
 | 
						|
     */
 | 
						|
    static public function parse($text, $builder = null) {
 | 
						|
        $tokenizer = new HTML5_Tokenizer($text, $builder);
 | 
						|
        $tokenizer->parse();
 | 
						|
        return $tokenizer->save();
 | 
						|
    }
 | 
						|
    /**
 | 
						|
     * Parses an HTML fragment.
 | 
						|
     * @param $text HTML text to parse
 | 
						|
     * @param $context String name of context element to pretend parsing is in.
 | 
						|
     * @param $builder Custom builder implementation
 | 
						|
     * @return Parsed HTML as DOMDocument
 | 
						|
     */
 | 
						|
    static public function parseFragment($text, $context = null, $builder = null) {
 | 
						|
        $tokenizer = new HTML5_Tokenizer($text, $builder);
 | 
						|
        $tokenizer->parseFragment($context);
 | 
						|
        return $tokenizer->save();
 | 
						|
    }
 | 
						|
}
 |