public function load($string, $isFile = false, $type = Document::TYPE_HTML, $options = null)
    {
        if (!is_string($string)) {
            throw new InvalidArgumentException(sprintf('%s expects parameter 1 to be string, %s given', __METHOD__, (is_object($string) ? get_class($string) : gettype($string))));
        }

        if (!is_string($type)) {
            throw new InvalidArgumentException(sprintf('%s expects parameter 3 to be string, %s given', __METHOD__, (is_object($type) ? get_class($type) : gettype($type))));
        }

        if (!in_array(strtolower($type), [Document::TYPE_HTML, Document::TYPE_XML], true)) {
            throw new RuntimeException(sprintf('Document type must be "xml" or "html", %s given', $type));
        }

        if ($options === null) {
            // LIBXML_HTML_NODEFDTD - prevents a default doctype being added when one is not found
            $options = LIBXML_HTML_NODEFDTD;
        }

        if (!is_int($options)) {
            throw new InvalidArgumentException(sprintf('%s expects parameter 4 to be integer, %s given', __METHOD__, (is_object($options) ? get_class($options) : gettype($options))));
        }

        $string = trim($string);

        if ($isFile) {
            $string = $this->loadFile($string);
        }

        if (strtolower($type) === Document::TYPE_HTML) {
            $string = Encoder::convertToHtmlEntities($string, $this->encoding);
        }

        $this->type = strtolower($type);

        Errors::disable();

        if ($this->type === Document::TYPE_HTML) {
            $this->document->loadHtml($string, $options);
        } else {
            $this->document->loadXml($string, $options);
        }

        Errors::restore();

        return $this;
    }
public function load($string, $isFile = false, $type = Document::TYPE_HTML, $options = null)
    {
        if (!is_string($string)) {
            throw new InvalidArgumentException(sprintf('%s expects parameter 1 to be string, %s given', __METHOD__, (is_object($string) ? get_class($string) : gettype($string))));
        }

        if (!is_string($type)) {
            throw new InvalidArgumentException(sprintf('%s expects parameter 3 to be string, %s given', __METHOD__, (is_object($type) ? get_class($type) : gettype($type))));
        }

        if (!in_array(strtolower($type), [Document::TYPE_HTML, Document::TYPE_XML], true)) {
            throw new RuntimeException(sprintf('Document type must be "xml" or "html", %s given', $type));
        }

        if ($options === null) {
            // LIBXML_HTML_NODEFDTD - prevents a default doctype being added when one is not found
            $options = LIBXML_HTML_NODEFDTD;
        }

        if (!is_int($options)) {
            throw new InvalidArgumentException(sprintf('%s expects parameter 4 to be integer, %s given', __METHOD__, (is_object($options) ? get_class($options) : gettype($options))));
        }

        $string = trim($string);

        if ($isFile) {
            $string = $this->loadFile($string);
        }

        if (strtolower($type) === Document::TYPE_HTML) {
            $string = Encoder::convertToHtmlEntities($string, $this->encoding);
        }

        $this->type = strtolower($type);

        Errors::disable();

        if ($this->type === Document::TYPE_HTML) {
            $this->document->loadHtml($string, $options);
        } else {
            $this->document->loadXml($string, $options);
        }

        Errors::restore();

        return $this;
    }
public function load ( $ string , $ isFile = false , $ type = Document :: TYPE_HTML , $ options = null ) { if ( ! is_string ( $ string ) ) { throw new InvalidArgumentException ( sprintf ( '%s expects parameter 1 to be string, %s given' , __METHOD__ , ( is_object ( $ string ) ? get_class ( $ string ) : gettype ( $ string ) ) ) ) ; } if ( ! is_string ( $ type ) ) { throw new InvalidArgumentException ( sprintf ( '%s expects parameter 3 to be string, %s given' , __METHOD__ , ( is_object ( $ type ) ? get_class ( $ type ) : gettype ( $ type ) ) ) ) ; } if ( ! in_array ( strtolower ( $ type ) , [ Document :: TYPE_HTML , Document :: TYPE_XML ] , true ) ) { throw new RuntimeException ( sprintf ( 'Document type must be "xml" or "html", %s given' , $ type ) ) ; } if ( $ options === null ) { // LIBXML_HTML_NODEFDTD - prevents a default doctype being added when one is not found $ options = LIBXML_HTML_NODEFDTD ; } if ( ! is_int ( $ options ) ) { throw new InvalidArgumentException ( sprintf ( '%s expects parameter 4 to be integer, %s given' , __METHOD__ , ( is_object ( $ options ) ? get_class ( $ options ) : gettype ( $ options ) ) ) ) ; } $ string = trim ( $ string ) ; if ( $ isFile ) { $ string = $ this -> loadFile ( $ string ) ; } if ( strtolower ( $ type ) === Document :: TYPE_HTML ) { $ string = Encoder :: convertToHtmlEntities ( $ string , $ this -> encoding ) ; } $ this -> type = strtolower ( $ type ) ; Errors :: disable ( ) ; if ( $ this -> type === Document :: TYPE_HTML ) { $ this -> document -> loadHtml ( $ string , $ options ) ; } else { $ this -> document -> loadXml ( $ string , $ options ) ; } Errors :: restore ( ) ; return $ this ; }
Load HTML or XML.

@param string   $string  HTML or XML string or file path
@param bool     $isFile  Indicates that in first parameter was passed to the file path
@param string   $type    Type of the document
@param int|null $options Additional parameters

@return \DiDom\Document

@throws \InvalidArgumentException if first parameter is not a string
@throws \InvalidArgumentException if document type parameter is not a string
@throws \RuntimeException if document type is not HTML or XML
Load HTML or XML .