protected function ensureUrlOrFile($input, $type = null)
    {
        if ($input instanceof File) {
            $this->_tmpFiles[] = $input;
            return $input;
        } elseif (preg_match(self::REGEX_URL, $input)) {
            return $input;
        } elseif ($type === self::TYPE_XML || $type === null && preg_match(self::REGEX_XML, $input)) {
            $ext = '.xml';
        } else {
            // First check for obvious HTML content to avoid is_file() as much
            // as possible as it can trigger open_basedir restriction warnings
            // with long strings.
            $isHtml = $type === self::TYPE_HTML || preg_match(self::REGEX_HTML, $input);
            if (!$isHtml) {
                $maxPathLen = defined('PHP_MAXPATHLEN') ?
                    constant('PHP_MAXPATHLEN') : self::MAX_PATHLEN;
                if (strlen($input) <= $maxPathLen && is_file($input)) {
                    return $input;
                }
            }
            $ext = '.html';
        }
        $file = new File($input, $ext, self::TMP_PREFIX, $this->tmpDir);
        $this->_tmpFiles[] = $file;
        return $file;
    }
protected function ensureUrlOrFile($input, $type = null)
    {
        if ($input instanceof File) {
            $this->_tmpFiles[] = $input;
            return $input;
        } elseif (preg_match(self::REGEX_URL, $input)) {
            return $input;
        } elseif ($type === self::TYPE_XML || $type === null && preg_match(self::REGEX_XML, $input)) {
            $ext = '.xml';
        } else {
            // First check for obvious HTML content to avoid is_file() as much
            // as possible as it can trigger open_basedir restriction warnings
            // with long strings.
            $isHtml = $type === self::TYPE_HTML || preg_match(self::REGEX_HTML, $input);
            if (!$isHtml) {
                $maxPathLen = defined('PHP_MAXPATHLEN') ?
                    constant('PHP_MAXPATHLEN') : self::MAX_PATHLEN;
                if (strlen($input) <= $maxPathLen && is_file($input)) {
                    return $input;
                }
            }
            $ext = '.html';
        }
        $file = new File($input, $ext, self::TMP_PREFIX, $this->tmpDir);
        $this->_tmpFiles[] = $file;
        return $file;
    }
protected function ensureUrlOrFile ( $ input , $ type = null ) { if ( $ input instanceof File ) { $ this -> _tmpFiles [ ] = $ input ; return $ input ; } elseif ( preg_match ( self :: REGEX_URL , $ input ) ) { return $ input ; } elseif ( $ type === self :: TYPE_XML || $ type === null && preg_match ( self :: REGEX_XML , $ input ) ) { $ ext = '.xml' ; } else { // First check for obvious HTML content to avoid is_file() as much // as possible as it can trigger open_basedir restriction warnings // with long strings. $ isHtml = $ type === self :: TYPE_HTML || preg_match ( self :: REGEX_HTML , $ input ) ; if ( ! $ isHtml ) { $ maxPathLen = defined ( 'PHP_MAXPATHLEN' ) ? constant ( 'PHP_MAXPATHLEN' ) : self :: MAX_PATHLEN ; if ( strlen ( $ input ) <= $ maxPathLen && is_file ( $ input ) ) { return $ input ; } } $ ext = '.html' ; } $ file = new File ( $ input , $ ext , self :: TMP_PREFIX , $ this -> tmpDir ) ; $ this -> _tmpFiles [ ] = $ file ; return $ file ; }
This method creates a temporary file if the passed argument is neither a
File instance or URL nor contains XML or HTML and is also not a valid
file name.

@param string|File $input the input argument File to check
@param string|null $type a type hint if the input is a string of known
type. This can either be `TYPE_HTML` or `TYPE_XML`. If `null` (default)
the type is auto detected from the string content.
@return \mikehaertl\tmp\File|string a File object if the input is a HTML
or XML string. The unchanged input otherwhise.
This method creates a temporary file if the passed argument is neither a File instance or URL nor contains XML or HTML and is also not a valid file name .