public function loadHtmlFile($file)
    {
        $this->saveLocale();

        if (!$this->protocol && !$this->baseHost && !$this->basePath) {
            list($this->protocol, $this->baseHost, $this->basePath) = Helpers::explode_url($file);
        }
        $protocol = strtolower($this->protocol);

        if ( !in_array($protocol, $this->allowedProtocols) ) {
            throw new Exception("Permission denied on $file. The communication protocol is not supported.");
        }

        if (!$this->options->isRemoteEnabled() && ($protocol != "" && $protocol !== "file://")) {
            throw new Exception("Remote file requested, but remote file download is disabled.");
        }

        if ($protocol == "" || $protocol === "file://") {
            $realfile = realpath($file);

            $chroot = realpath($this->options->getChroot());
            if ($chroot && strpos($realfile, $chroot) !== 0) {
                throw new Exception("Permission denied on $file. The file could not be found under the directory specified by Options::chroot.");
            }

            $ext = strtolower(pathinfo($realfile, PATHINFO_EXTENSION));
            if (!in_array($ext, $this->allowedLocalFileExtensions)) {
                throw new Exception("Permission denied on $file. This file extension is forbidden");
            }

            if (!$realfile) {
                throw new Exception("File '$file' not found.");
            }

            $file = $realfile;
        }

        list($contents, $http_response_header) = Helpers::getFileContent($file, $this->httpContext);
        $encoding = 'UTF-8';

        // See http://the-stickman.com/web-development/php/getting-http-response-headers-when-using-file_get_contents/
        if (isset($http_response_header)) {
            foreach ($http_response_header as $_header) {
                if (preg_match("@Content-Type:\s*[\w/]+;\s*?charset=([^\s]+)@i", $_header, $matches)) {
                    $encoding = strtoupper($matches[1]);
                    break;
                }
            }
        }

        $this->restoreLocale();

        $this->loadHtml($contents, $encoding);
    }
public function loadHtmlFile($file)
    {
        $this->saveLocale();

        if (!$this->protocol && !$this->baseHost && !$this->basePath) {
            list($this->protocol, $this->baseHost, $this->basePath) = Helpers::explode_url($file);
        }
        $protocol = strtolower($this->protocol);

        if ( !in_array($protocol, $this->allowedProtocols) ) {
            throw new Exception("Permission denied on $file. The communication protocol is not supported.");
        }

        if (!$this->options->isRemoteEnabled() && ($protocol != "" && $protocol !== "file://")) {
            throw new Exception("Remote file requested, but remote file download is disabled.");
        }

        if ($protocol == "" || $protocol === "file://") {
            $realfile = realpath($file);

            $chroot = realpath($this->options->getChroot());
            if ($chroot && strpos($realfile, $chroot) !== 0) {
                throw new Exception("Permission denied on $file. The file could not be found under the directory specified by Options::chroot.");
            }

            $ext = strtolower(pathinfo($realfile, PATHINFO_EXTENSION));
            if (!in_array($ext, $this->allowedLocalFileExtensions)) {
                throw new Exception("Permission denied on $file. This file extension is forbidden");
            }

            if (!$realfile) {
                throw new Exception("File '$file' not found.");
            }

            $file = $realfile;
        }

        list($contents, $http_response_header) = Helpers::getFileContent($file, $this->httpContext);
        $encoding = 'UTF-8';

        // See http://the-stickman.com/web-development/php/getting-http-response-headers-when-using-file_get_contents/
        if (isset($http_response_header)) {
            foreach ($http_response_header as $_header) {
                if (preg_match("@Content-Type:\s*[\w/]+;\s*?charset=([^\s]+)@i", $_header, $matches)) {
                    $encoding = strtoupper($matches[1]);
                    break;
                }
            }
        }

        $this->restoreLocale();

        $this->loadHtml($contents, $encoding);
    }
public function loadHtmlFile ( $ file ) { $ this -> saveLocale ( ) ; if ( ! $ this -> protocol && ! $ this -> baseHost && ! $ this -> basePath ) { list ( $ this -> protocol , $ this -> baseHost , $ this -> basePath ) = Helpers :: explode_url ( $ file ) ; } $ protocol = strtolower ( $ this -> protocol ) ; if ( ! in_array ( $ protocol , $ this -> allowedProtocols ) ) { throw new Exception ( "Permission denied on $file. The communication protocol is not supported." ) ; } if ( ! $ this -> options -> isRemoteEnabled ( ) && ( $ protocol != "" && $ protocol !== "file://" ) ) { throw new Exception ( "Remote file requested, but remote file download is disabled." ) ; } if ( $ protocol == "" || $ protocol === "file://" ) { $ realfile = realpath ( $ file ) ; $ chroot = realpath ( $ this -> options -> getChroot ( ) ) ; if ( $ chroot && strpos ( $ realfile , $ chroot ) !== 0 ) { throw new Exception ( "Permission denied on $file. The file could not be found under the directory specified by Options::chroot." ) ; } $ ext = strtolower ( pathinfo ( $ realfile , PATHINFO_EXTENSION ) ) ; if ( ! in_array ( $ ext , $ this -> allowedLocalFileExtensions ) ) { throw new Exception ( "Permission denied on $file. This file extension is forbidden" ) ; } if ( ! $ realfile ) { throw new Exception ( "File '$file' not found." ) ; } $ file = $ realfile ; } list ( $ contents , $ http_response_header ) = Helpers :: getFileContent ( $ file , $ this -> httpContext ) ; $ encoding = 'UTF-8' ; // See http://the-stickman.com/web-development/php/getting-http-response-headers-when-using-file_get_contents/ if ( isset ( $ http_response_header ) ) { foreach ( $ http_response_header as $ _header ) { if ( preg_match ( "@Content-Type:\s*[\w/]+;\s*?charset=([^\s]+)@i" , $ _header , $ matches ) ) { $ encoding = strtoupper ( $ matches [ 1 ] ) ; break ; } } } $ this -> restoreLocale ( ) ; $ this -> loadHtml ( $ contents , $ encoding ) ; }
Loads an HTML file
Parse errors are stored in the global array _dompdf_warnings.

@param string $file a filename or url to load

@throws Exception
Loads an HTML file Parse errors are stored in the global array _dompdf_warnings .