function get_all_components_md5() {

    /// Check requisites are passed
        if (!$this->requisitesok) {
            return false;
        }

    /// Initialize components array
        $comp_arr = array();

    /// Define and retrieve the full md5 file
        if ($this->zippath) {
            $source = $this->sourcebase.'/'.$this->zippath.'/'.$this->md5filename;
        } else {
            $source = $this->sourcebase.'/'.$this->md5filename;
        }

    /// Check if we have downloaded the md5 file before (per request cache)
        if (!empty($this->cachedmd5components[$source])) {
            $comp_arr = $this->cachedmd5components[$source];
        } else {
        /// Not downloaded, let's do it now
            $availablecomponents = array();

            if ($contents = download_file_content($source)) {
            /// Split text into lines
                $lines=preg_split('/\r?\n/',$contents);
            /// Each line will be one component
                foreach($lines as $line) {
                    $availablecomponents[] = explode(',', $line);
                }
            /// If no components have been found, return error
                if (empty($availablecomponents)) {
                    $this->errorstring='cannotdownloadcomponents';
                    return false;
                }
            /// Build an associative array of components for easily search
            /// applying trim to avoid linefeeds and other...
                $comp_arr = array();
                foreach ($availablecomponents as $component) {
                /// Avoid sometimes empty lines
                    if (empty($component[0])) {
                        continue;
                    }
                    $component[0]=trim($component[0]);
                    if (!empty($component[1])) {
                        $component[1]=trim($component[1]);
                    }
                    if (!empty($component[2])) {
                        $component[2]=trim($component[2]);
                    }
                    $comp_arr[$component[0]] = $component;
                }
            /// Cache components
                $this->cachedmd5components[$source] = $comp_arr;
            } else {
            /// Return error
                $this->errorstring='remotedownloaderror';
                return false;
            }
        }
    /// If there is no commponents or erros found, error
        if (!empty($this->errorstring)) {
             return false;

        } else if (empty($comp_arr)) {
             $this->errorstring='cannotdownloadcomponents';
             return false;
        }
        return $comp_arr;
    }
function get_all_components_md5() {

    /// Check requisites are passed
        if (!$this->requisitesok) {
            return false;
        }

    /// Initialize components array
        $comp_arr = array();

    /// Define and retrieve the full md5 file
        if ($this->zippath) {
            $source = $this->sourcebase.'/'.$this->zippath.'/'.$this->md5filename;
        } else {
            $source = $this->sourcebase.'/'.$this->md5filename;
        }

    /// Check if we have downloaded the md5 file before (per request cache)
        if (!empty($this->cachedmd5components[$source])) {
            $comp_arr = $this->cachedmd5components[$source];
        } else {
        /// Not downloaded, let's do it now
            $availablecomponents = array();

            if ($contents = download_file_content($source)) {
            /// Split text into lines
                $lines=preg_split('/\r?\n/',$contents);
            /// Each line will be one component
                foreach($lines as $line) {
                    $availablecomponents[] = explode(',', $line);
                }
            /// If no components have been found, return error
                if (empty($availablecomponents)) {
                    $this->errorstring='cannotdownloadcomponents';
                    return false;
                }
            /// Build an associative array of components for easily search
            /// applying trim to avoid linefeeds and other...
                $comp_arr = array();
                foreach ($availablecomponents as $component) {
                /// Avoid sometimes empty lines
                    if (empty($component[0])) {
                        continue;
                    }
                    $component[0]=trim($component[0]);
                    if (!empty($component[1])) {
                        $component[1]=trim($component[1]);
                    }
                    if (!empty($component[2])) {
                        $component[2]=trim($component[2]);
                    }
                    $comp_arr[$component[0]] = $component;
                }
            /// Cache components
                $this->cachedmd5components[$source] = $comp_arr;
            } else {
            /// Return error
                $this->errorstring='remotedownloaderror';
                return false;
            }
        }
    /// If there is no commponents or erros found, error
        if (!empty($this->errorstring)) {
             return false;

        } else if (empty($comp_arr)) {
             $this->errorstring='cannotdownloadcomponents';
             return false;
        }
        return $comp_arr;
    }
function get_all_components_md5 ( ) { /// Check requisites are passed if ( ! $ this -> requisitesok ) { return false ; } /// Initialize components array $ comp_arr = array ( ) ; /// Define and retrieve the full md5 file if ( $ this -> zippath ) { $ source = $ this -> sourcebase . '/' . $ this -> zippath . '/' . $ this -> md5filename ; } else { $ source = $ this -> sourcebase . '/' . $ this -> md5filename ; } /// Check if we have downloaded the md5 file before (per request cache) if ( ! empty ( $ this -> cachedmd5components [ $ source ] ) ) { $ comp_arr = $ this -> cachedmd5components [ $ source ] ; } else { /// Not downloaded, let's do it now $ availablecomponents = array ( ) ; if ( $ contents = download_file_content ( $ source ) ) { /// Split text into lines $ lines = preg_split ( '/\r?\n/' , $ contents ) ; /// Each line will be one component foreach ( $ lines as $ line ) { $ availablecomponents [ ] = explode ( ',' , $ line ) ; } /// If no components have been found, return error if ( empty ( $ availablecomponents ) ) { $ this -> errorstring = 'cannotdownloadcomponents' ; return false ; } /// Build an associative array of components for easily search /// applying trim to avoid linefeeds and other... $ comp_arr = array ( ) ; foreach ( $ availablecomponents as $ component ) { /// Avoid sometimes empty lines if ( empty ( $ component [ 0 ] ) ) { continue ; } $ component [ 0 ] = trim ( $ component [ 0 ] ) ; if ( ! empty ( $ component [ 1 ] ) ) { $ component [ 1 ] = trim ( $ component [ 1 ] ) ; } if ( ! empty ( $ component [ 2 ] ) ) { $ component [ 2 ] = trim ( $ component [ 2 ] ) ; } $ comp_arr [ $ component [ 0 ] ] = $ component ; } /// Cache components $ this -> cachedmd5components [ $ source ] = $ comp_arr ; } else { /// Return error $ this -> errorstring = 'remotedownloaderror' ; return false ; } } /// If there is no commponents or erros found, error if ( ! empty ( $ this -> errorstring ) ) { return false ; } else if ( empty ( $ comp_arr ) ) { $ this -> errorstring = 'cannotdownloadcomponents' ; return false ; } return $ comp_arr ; }
This function allows you to retrieve the complete array of components found in
the md5filename

@return bool|array array of components in md5 file or false if error
This function allows you to retrieve the complete array of components found in the md5filename